帮我写一个关于FM调制与解调的MATLAB程序
时间: 2023-09-30 19:03:28 浏览: 159
好的,下面是一个简单的FM调制与解调的MATLAB程序示例。
FM调制程序:
```matlab
fc = 100; %载波频率
fm = 10; %调制信号频率
fs = 1000; %采样频率
t = 0:1/fs:1; %时间序列
kf = 10; %调制系数
m = sin(2*pi*fm*t); %调制信号
s = sin(2*pi*fc*t + kf*cumsum(m)); %FM调制信号
subplot(2,1,1);
plot(t,m);
title('调制信号');
xlabel('时间');
ylabel('幅度');
subplot(2,1,2);
plot(t,s);
title('FM调制信号');
xlabel('时间');
ylabel('幅度');
```
FM解调程序:
```matlab
y = diff(s); %计算差分信号
z = abs(y); %取差分信号的绝对值
[b,a] = butter(2,2*fm/fs,'low'); %设计低通滤波器
w = filter(b,a,z); %滤波处理
n = length(w);
dw = w(2:n) - w(1:n-1); %计算微分信号
x = 1/kf*dw; %解调信号
subplot(3,1,1);
plot(t,s);
title('FM调制信号');
xlabel('时间');
ylabel('幅度');
subplot(3,1,2);
plot(t(1:n-1),w);
title('差分信号');
xlabel('时间');
ylabel('幅度');
subplot(3,1,3);
plot(t(1:n-1),x);
title('解调信号');
xlabel('时间');
ylabel('幅度');
```
以上程序仅供参考,如有需要请根据具体情况进行修改和优化。
阅读全文