Deconvolution of system output signal using Deconv
조회 수: 9 (최근 30일)
이전 댓글 표시
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);
댓글 수: 0
답변 (2개)
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.
댓글 수: 0
Alessio Lodato
2021년 5월 21일
Dear Yasir,
how can i contact you, i have a similar problem.
Thank you,
A
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!