⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen_comb.m

📁 模拟调制信号产生
💻 M
字号:
function [x]=gen_dsb(fc,fs,fx,Ns,A,Q,D,SNR)
%产生am-fm 信号
%fc:carrier frequency
%fs:sampple frequency
%fx:bandwidth of message signal
%Ns:number of total samplles per segment
%A:carrier amplitude
%Q:am modulation depth
%D:fm index
%SNR:snr of signal received

Ts=1/fs;luo=0.98;
n=randn(Ns,1);
xm1=zeros(Ns,1);
for i=2:Ns
    xm1(i,:)=luo*xm1(i-1)+n(i);
end;
%filt the message signal
Wn=fx/(fs/2);
fir_coef=fir1(30,Wn);
xm1=fftfilt(fir_coef,xm1);
xm1=xm1-mean(xm1);

%calculate m
m=2*Q*A/( max(xm1)-min(xm1)-Q*(max(xm1)+min(xm1)) );

n=randn(Ns,1);
xm2=zeros(Ns,1);
for i=2:Ns
    xm2(i)=luo*xm2(i-1)+n(i);
end;
%确定系数kf
kf=2*pi*fx*D/(max(xm2));
%由xm2计算其积分xm2_inte
xm2_int=zeros(Ns,1);
xm2_int(1)=Ts*xm2(1);
xm2_int(2)=Ts*(xm2(1)+xm2(2))/2;
for i=3:Ns
    temp=0;
    for j=2:i-1
        temp=temp+xm2(j);
    end;
    xm2_int(i)=Ts*(xm2(1)+xm2(i)+2*temp)/2;
end;

%modulated signal
for i=1:Ns
    s(i,1)=(A+m*xm1(i)) * cos(2*pi*fc*(i-1)*Ts + kf*xm2_int(i));
end;

%bandlimitation on modulated signal
Wn=[(fc-(D+2)*fx)/(fs/2),(fc+(D+2)*fx)/(fs/2)];
fir_coef = fir1(30, Wn);
s=fftfilt(fir_coef, s);
%%% adding the bandlimited noise;
n=randn(Ns,1);
Wn2=[(fc-1.2*(D+2)*fx)/(fs/2),(fc+1.2*(D+2)*fx)/(fs/2)];
fir_coef2=fir1(30,Wn2);
n=fftfilt(fir_coef2,n);

Sp=sum(s.*conj(s));
Np=sum(n.*conj(n));
Rsn=sqrt(Sp/Np)*10^(-SNR/20);
x=s+Rsn*n;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -