- https://www.mathworks.com/help/comm/ref/qamdemod.html
- https://www.mathworks.com/help/comm/ref/qammod.html
group delay how to add it?
8 ビュー (過去 30 日間)
古いコメントを表示
clc;
clear all;
M=32;
x=RANDINT(100e3,1,M);
y=modulate(modem.qammod(M),x);
ynoisy=awgn(y,27,'measured');
%%I think here we should have group delay??
scatterplot(ynoisy),grid;
z=demodulate(modem.qamdemod(M),ynoisy);
figure (2);
subplot(2,1,1);
stem(x(1:10),'filled'),grid;title('transmitted data')
subplot(2,1,2);
stem(z(1:10),'filled'),grid;title('received data');
[num ty]=symerr(x,z);
I want to add Group delay to QAM and show the effect of group delay Also I know there is function for this job but how to use it! http://www.mathworks.com/help/toolbox/signal/grpdelay.html
0 件のコメント
回答 (1 件)
Vidhi Agarwal
2024 年 8 月 2 日
Hi Ali,
To add group delay using the “grpdelay” function in MATLAB, you need to design a filter that introduces the desired group delay and then apply this filter to your signal. Below is modified code for the same:
clc;
clear all;
% Parameters
M = 32;
numSymbols = 100e3;
SNR = 27; % Signal-to-noise ratio in dB
groupDelay = 5; % Desired group delay in samples
% Generate random data
x = randi([0 M-1], numSymbols, 1);
% Modulate the data using QAM
y = qammod(x, M);
% Add AWGN noise
ynoisy = awgn(y, SNR, 'measured');
% Design an FIR filter to introduce the desired group delay
b = fir1(2*groupDelay, 0.5); % Low-pass filter with order 2*groupDelay
h = dfilt.dffir(b);
% Apply the filter to introduce group delay
yDelayed = filter(h, [ynoisy; zeros(groupDelay, 1)]);
yDelayed = yDelayed(groupDelay+1:end); % Remove the initial transient
% Scatter plot of noisy signal with group delay
scatterplot(yDelayed), grid on;
title('Noisy QAM Signal with Group Delay');
% Demodulate the delayed signal
z = qamdemod(yDelayed, M);
% Plot transmitted vs. received data
figure(2);
subplot(2,1,1);
stem(x(1:10), 'filled'), grid on;
title('Transmitted Data');
subplot(2,1,2);
stem(z(1:10), 'filled'), grid on;
title('Received Data');
% Calculate symbol error rate
[num, ty] = symerr(x, z);
disp(['Number of symbol errors: ', num2str(num)]);
disp(['Symbol error rate: ', num2str(ty)]);
For detailed information on “qammod” and “qamdemod” refer to the following documentation:
Hope that Helps!
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Propagation and Channel Models についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!