程序函数介绍
在本次仿真中运用到的Matlab函数如下:
(1)cos函数
语法:cos(2pifmt)。
功能:生成正弦波调制信号。
说明:生成正弦波,频率为fm。
(2)sawtooth函数
语法:awtooth(2pifmt,Am)。
功能:生成三角波调制信号。
说明:生成频率为fm的三角波。
(3)fft函数
语法:y=fft(x,N)。
功能:对信号进行快速Fourier变换。
(4)abs函数
语法:y=abs(x)。
功能:数值的绝对值和复数的幅值。
(5)Length函数
语法:length(x)。
功能:计算向量或者矩阵长度。
(6)demod函数
语法:y=demod(x,fc,fs,fm)。
功能:将调制信号x解调,fc为载波频率,fs为采样频率,fm为调制信号频率。
(7)sum函数
语法:y=sum(x)。
功能:求和。
(8)Awgn函数
语法:y=awgn(x,SNR)。
功能:在某一信号中加入高斯白噪声。
说明:在信号x中加入高斯白噪声。信噪比SNR以dB为单位。X的强度假定为0dW。如果x是复数,就加入复噪声。
(9)zeros函数
功能:生成零矩阵。
(10)max函数
功能:求最大值。
(11)fftshift函数
功能:将FFT中的DC分量移到频谱中心。
程序分析
FM信号调制
(1)运用间接调频法编写FM调制程序,如下所示:
dt=0.00001; %设定步长
N=1000; %FFT长度
Fs=1/dt; %设定采样频率
n=0:N-1;t=n/Fs; %截止时间
fc=30000; %设定载波频率为要求的30KHZ
ct=cos(2*pi*fc*t); %生成载波
am=0.5; %设定调制信号幅度为0.5
fm=300; %设定调制信号频率为要求的300HZ
mt_sin=am*cos(2*pi*fm*t); %生成正弦波调制信号
mt_tri=sawtooth(2*pi*fm*t,0.5); %生成三角波调制信号
ma=0.5; %设定调频指数(可更改为1或3)
int_mt_sin(1)=0; %定义int_mt_sin为mt_sin信号在时域上的积分
for i=1:length(t)-1
int_mt_sin(i+1)=int_mt_sin(i)+mt_sin(i)*dt; %对mt_sin进行积分
End
sfm_sin=am*cos(2*pi*fc*t+ma*2*pi*fm*int_mt_sin);%对正弦波调制,产生已调信号
三角波调制程序同正弦波类似,不再赘述。
(2)求频谱(以正弦调制信号为例)。下列程序是对调制信号m(t)求傅里叶变换,对已调信号求傅里叶变换时只需将调制信号替换为已调信号即可。
m=mt_sin; %原调信号
ts=0.001; %抽样间隔
df=0.25; %所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
fs=1/ts; %抽样频率
if n==2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df1=fs/n;
M=M/fs; %缩放,便于在频铺图上整体观察
f=[0:df1:df1*(length(m)-1)]-fs/2; %时间向量对应的频率向量
plot(f,abs(fftshift(M))) ; %输出
FM信号解调
MATLAB中demod函数为软件自带的解调函数,用该函数直接对加噪声前后已调信号进行解调,程序如下(以正弦波已调信号为例):
yy_sin=demod(sfm_sin,fc,Fs,'fm');
输入输出信噪比关系
MATLA由于正弦波与三角波程序类似,以正弦波为例分析程序如下:
(1)给信号添加5db、10db、15db、20db、25db五种不同信噪比的高斯白噪声,下面以添加5db噪声为例。
yn_sin0=awgn(sfm_sin,5); %正弦波调频信号加入5db高斯白噪声
yyn_sin0=demod(yn_sin0,fc,Fs,'fm'); %加高斯白噪声的正弦波解调信号
(2)将加噪信号减去纯信号求得噪声信号。添加链接描述
dy10=yn_sin0-sfm_sin; %高斯白噪声
dy20=yyn_sin0-yy_sin; %解调后噪声
(3)求输入输出的信号及噪声功率。
ps1=sum((sfm_sin).^2)/length(sfm_sin); %输入信号功率
pn10=sum((dy10).^2)/length(dy10); %输入噪声功率
ps2=sum((yy_sin).^2)/length(yy_sin); %输出信号功率
pn20=sum((dy20).^2)/length(dy20); %输出噪声功率
(4)求输入输出的信噪比。
snr10=ps1/pn10; %输入信噪比
snr20=ps2/pn20; %输出信噪比