Deconvolution of system output signal using Deconv

20 ビュー (過去 30 日間)
Asli Memmet
Asli Memmet 2018 年 12 月 22 日
回答済み: Alessio Lodato 2021 年 5 月 21 日
I want to recover the message signal by deconv() . the program takes system input(the message) and the impulse response and it convolutes them. However, the ouput signal(result of convolution) is then affected by a noise (sigma*randn(1,length(output_signal))) afterwards.
The target is to recover/restore the original message by using Deconv() function.
The problem is Deconv() returns a single float number i.e a point not the original message .
note : I tested the code the output signl is perfectly plotted however things don't work after that.
I need help!
What I have tried
Y = conv(signals, responses,'same');
% signals is a vector of signals that respresent the message.
% responses is a vector of signals that respresent the impulse response.
% both are user inputs.
sigma = 1;
noise = sigma*randn(1,length(Y));
Y = Y + noise;
[recovered_message, r] = deconv(Y, signals);
plot(recovered_message);

回答 (2 件)

Yasir Ahmed
Yasir Ahmed 2019 年 11 月 16 日
Please see the code below.
%%%%% QPSK Modulation %%%%%
clear all
close all
symbols=5;
Ns=20;
Eb=sqrt(2);
EbNo=10;
s=([ones(1,Ns)]')*([1+i,-1+i,-1-i,1-i,1+i]);
s=s(:);
s=transpose(s);
plot(s,'bo-');hold on
h=[1.30,0.05,0.34,-0.03,0.40];
r=conv(s,h);
sigma=sqrt(Eb/(2*EbNo));
r=r+sigma*(randn(1,length(r))+i*randn(1,length(r)));
plot(r(1:symbols*Ns),'r*')
[s_est,R]=deconv(r,h);
plot(s_est,'g+');hold off
xlabel('In-phase')
ylabel('Quadrature')
legend('Tx','Rx','Eq')
For complete discussion see the comments section of the following post.

Alessio Lodato
Alessio Lodato 2021 年 5 月 21 日
Dear Yasir,
how can i contact you, i have a similar problem.
Thank you,
A

カテゴリ

Help Center および File ExchangeSignal Generation and Preprocessing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by