📄 ex_12_11_1.m
字号:
% ex_12_11_1.m : 习题 12.11
clear all;
close all;
%题目给出的参数-------------------------------------------------------
N=256;
P=0.12;
h=[1 -0.1 0.09 0.648]; %FIR滤波器系数
SNR=[10 50 50]; F=[0.1 0.25 0.26]; %三个信噪比和归一化频率
%步骤一:产生白噪声-----------------------------------------------
a=sqrt(P);
u=rand(1,20*N);
u=u-mean(u);u=u*a;
%步骤二:滤波处理-----------------------------------------------------
v1=filter(h,1,u);
v=v1(1000:1000+N-1);
%步骤三:产生正弦序列----------------------------------------------------
A=sqrt(2*P*10.^(SNR/10)) %根据信噪比确定三个正弦函数的幅度
x1=A(1)*sin(2*pi*F(1)*[0:N-1]);
x2=A(2)*sin(2*pi*F(2)*[0:N-1]);
x3=A(3)*sin(2*pi*F(3)*[0:N-1]);
%步骤四:叠加信号,得到信号x---------------------------------------------
x=v+x1+x2+x3;
save testdat x;
%步骤五:求出信号x的真实功率谱---------------------------------------------
M=4096;H=freqz(h,1,M,1);H=abs(H);H=H.*H;H=P*H;
f=0:1/M:0.5-1/M;
power_y1=pi*A(1)*A(1)/2;
power_y2=pi*A(2)*A(2)/2;
power_y3=pi*A(3)*A(3)/2;
f1=0.1;f2=0.25;f3=0.26;
f1_n=round(f1*M);
f2_n=round(f2*M);
f3_n=round(f3*M);
H(f1_n)=H(f1_n)+power_y1;
H(f2_n)=H(f2_n)+power_y2;
H(f3_n)=H(f3_n)+power_y3;
PSD=10*log10(H/max(H)+eps);
figure('color','w');plot(f,PSD(1:2048));grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -