matlab生成10.7MHz的中频FM模拟信号,之后进行带通采样,然后得到IQ分量并低通滤波,在进行反正切差分运算求出解调信号
时间: 2024-05-29 13:12:50 浏览: 8
以下是 MATLAB 代码实现:
% 生成10.7MHz中频FM信号
fs = 50e6; % 采样率为50MHz
t = 0:1/fs:1e-3; % 信号时长为1ms
fc = 10.7e6; % 载波频率为10.7MHz
fm = 100e3; % 调频信号频率为100kHz
kf = 5e3; % 调频灵敏度为5kHz/V
m = 2; % 调制指数为2
x = cos(2*pi*fc*t + 2*pi*kf*m*cumsum(sin(2*pi*fm*t)));
% 带通采样
fIF = 455e3; % 中频为455kHz
fsIF = 2*fIF; % 中频采样率为910kHz
xIF = x.*cos(2*pi*fIF*t);
xIF_sampled = xIF(1:fs/fsIF:end);
% 得到IQ分量
tIF = 0:1/fsIF:length(xIF_sampled)/fsIF-1/fsIF;
IQ_I = xIF_sampled.*cos(2*pi*fIF*tIF);
IQ_Q = xIF_sampled.*sin(2*pi*fIF*tIF);
% 低通滤波
fc_LP = 20e3; % 低通滤波器截止频率为20kHz
[b,a] = butter(4,fc_LP/(fsIF/2)); % 4阶巴特沃斯滤波器
IQ_I_filtered = filter(b,a,IQ_I);
IQ_Q_filtered = filter(b,a,IQ_Q);
% 反正切差分运算求解调信号
demod_signal = diff(atan2(IQ_Q_filtered,IQ_I_filtered)); % 对atan2的结果做差分即可得到解调信号
% 绘制原始信号和解调信号
figure;
subplot(2,1,1);
plot(t*1e3,x);
title('原始信号');
xlabel('时间(ms)');
ylabel('幅度');
subplot(2,1,2);
plot(tIF*1e3,demod_signal);
title('解调信号');
xlabel('时间(ms)');
ylabel('幅度');
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)