簡體   English   中英

如何在MatLab中選擇所需SNR的放大系數

[英]How to choose the amplification factor for the required SNR in MatLab

我有一個具有一定方差的給定噪聲向量。 這無法改變。 我有一個IQ調制信號,需要放大才能獲得20dB的SNR。 我該怎么做?

k = 3/2;                    %certain variance
n = sqrt(k).*randn(1, N);   %noise vector
noise_power = var(n);

SNR = 10*log10(var(Xiq)/noise_power)   %current SNR in dB of the IQ modulated signal

%% Part 4
amp = 13.5;                 %some amplification, I can't figure out what it should be
Xamp = amp.* Xiq;
SNR = 10*log10(var(Xamp)/noise_power)   %SNR in dB should be 20 dBs

目前我使用的是固定比例因子,但我知道這不是正確的方法。 有人能幫助我嗎?

作為差異的一般規則:

Var (A*X) = A^2*Var(X) (如果A是常數)。

所以

SNR =  10*log10(var( amp* Xiq)/noise_power)
    =  10*log10(amp^2*var(Xiq)/noise_power)
    =  10*log10(amp^2) + 10*log10(var(Xiq)/noise_power)
    =  20*log10(amp) + SNR_original
    =  20

ERGO

20*log10(amp) = 20 - SNR_original
log10(amp) = (20 - SNR_original)/20
amp = 10^((20 - SNR_original)/20)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM