資源簡介
波形發生并生成十進制和二進制的TXT文件,源碼有詳細說明,可根據自己的需求生成自己的想要的單頻信號或者混合信號,并且生成波形文件,可以是十進制也可以是二進制。非常方便。
代碼片段和文件信息
%E4_8_NoiseAndCarrier.M
f4=100;
f1=300;???????%信號1頻率為200Hz
f3=400;
f2=500;???????%信號2頻率為800Hz
Fs=2000;??????%采樣頻率為2KHz
N=12;?????????%量化位數
%Pn=Pn0*Fs/2;?%噪聲信號功率
%width=0.5;???%函數SAWTOOTH()的尺度參數為0.5
%duty=50;?????%函數SQUQRE()的尺度參數為50
%產生信號
t=0:1/Fs:1;
c1=2*pi*f1*t;
c2=2*pi*f2*t;
c3=2*pi*f3*t;
c4=2*pi*f4*t;
%sq=square(cduty);%產生方波
%tr=sawtooth(cwidth);%產生三角波
s1=sin(c1);%產生正弦波
s2=sin(c2);%產生正弦波
s3=sin(c3);
s4=sin(c4);
s=s1+s2+s3+s4;???%產生兩個單載波合成后的信號
%產生隨機序列信號
noise=randn(1length(t));%產生高斯白噪聲序列
%歸一化處理
noise=noise/max(abs(noise));
s=s/max(abs(s));
%12比特量化
Q_noise=round(noise*(2^(N-1)-1));
Q_s=round(s*(2^(N-1)-1));
%調用自已設計的濾波器函數對信號進行濾波
hn=E4_8_Fir8Serial;
Filter_noise=filter(hn1Q_noise);
Filter_s=filter(hn1Q_s);
%求信號的幅頻響應
m_noise=20*log(abs(fft(Q_noise1024)))/log(10);?m_noise=m_noise-max(m_noise);
m_s=20*log(abs(fft(Q_s1024)))/log(10);?m_s=m_s-max(m_s);
%濾波后的幅頻響應
Fm_noise=20*log(abs(fft(Filter_noise1024)))/log(10);?Fm_noise=Fm_noise-max(Fm_noise);
Fm_s=20*log(abs(fft(Filter_s1024)))/log(10);?Fm_s=Fm_s-max(Fm_s);
%濾波器本身的幅頻響應
m_hn=20*log(abs(fft(hn1024)))/log(10);?m_hn=m_hn-max(m_hn);
%設置幅頻響應的橫坐標單位為Hz
x_f=[0:(Fs/length(m_s)):Fs/2];
%只顯示正頻率部分的幅頻響應
mf_noise=m_noise(1:length(x_f));
mf_s=m_s(1:length(x_f));
Fmf_noise=Fm_noise(1:length(x_f));
Fmf_s=Fm_s(1:length(x_f));
Fm_hn=m_hn(1:length(x_f));
%繪制幅頻響應曲線
subplot(211)
plot(x_fmf_noise‘-.‘x_fFmf_noise
評論
共有 條評論