How can I use AWGN Channel Block to specify a SNR respect my signal power?

6 次查看(过去 30 天)
Hello all,
I would like to use simulik AWG Channel Block to add certain Noise power to my signal. My desired signal is a 802.11p signal that I am creating with wlanNonHTConfig together with wlanWaveformGenerator as shown below
cfgNHT = wlanNonHTConfig;
cfgNHT.ChannelBandwidth = 'CBW10';
cfgNHT.PSDULength = psduLen;
cfgNHT.MCS = mcs;
%% Packet parameters
% Create random data; PSDULength is in bytes
savedState = rng(0); % Set random state
data = randi([0 1],cfgNHT.PSDULength*8*numPackets,1);
% Generate a multi-packet waveform
waveForm80211p = wlanWaveformGenerator(data,cfgNHT, 'NumPackets',numPackets,'IdleTime',idleTime);
fs = wlanSampleRate(cfgNHT);
disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps, with sampling frequency ' num2str(fs/1e6) 'MSsamples/s']);
Signal s = waveForm80211p will be imported into Simulink ( as timeseries) and there I will add white gaussian noise using the block AWG Channel Block as depicted below
However, in order to make use of the block AWGN I need the parameter called Input signal power, referenced to 1 ohm (watts), but how can I get this parameter from my waveForm80211p?
I have tried to use the signalAnalyzer to get an estimation of the signal power, being that it is roughtly Power=~-37dB.
So I have applied this will give a value of Power=1.4125e-02, is this the value that I need to set in Input signal power, referenced to 1 ohm (watts) ? If not, can someone help me to get the right value to set there?
Thanks in advance,
regards

回答(1 个)

Umeshraja
Umeshraja 2024-11-14,4:50
编辑:Umeshraja 2024-11-14,4:50
I understand you wanted to find Input Signal Power of the IEEE802.11p Waveform. It's important to note that each packet generated by the wlanWaveformGenerator is typically normalized to 1 watt (0 dBW) if there is no idle time. You can verify this by using the following MATLAB code snippet:
numPackets=10;
psduLen=500;
mcs=2;
cfgNHT = wlanNonHTConfig;
cfgNHT.ChannelBandwidth = 'CBW10';
cfgNHT.PSDULength = psduLen;
cfgNHT.MCS = mcs;
%% Packet parameters
% Create random data; PSDULength is in bytes
savedState = rng(0); % Set random state
data = randi([0 1],cfgNHT.PSDULength*8*numPackets,1);
% Generate a multi-packet waveform
waveForm80211p = wlanWaveformGenerator(data,cfgNHT, 'NumPackets',numPackets);
Power=var(waveForm80211p) %in Watts
Power = 0.9941
If you have idle time in your signal, it will affect the power calculation, and you might want to refer to the following MATLAB Answer on how idle time influences the power.
Additionally, for computing the power of a signal in Simulink, you can check out the following example
Hope it helps!

类别

Help CenterFile Exchange 中查找有关 Propagation and Channel Models 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by