正交解调后进行fm解调
时间: 2024-05-20 07:16:10 浏览: 131
正交解调后得到的是基带信号,需要进行FM解调才能得到原始的调制信号。FM解调的方法有两种:一种是利用频率鉴别器(也称为鉴频器)进行解调,另一种是利用相干解调器进行解调。
利用频率鉴别器进行FM解调的原理是:将基带信号输入到带通滤波器中,滤波器的中心频率与载波频率相同,滤波器输出的信号经过检波器后即可得到解调信号。这种方法的优点是简单易实现,但对于调制指数较大的信号,容易产生失真。
利用相干解调器进行FM解调的原理是:利用相干解调器对接收信号进行解调,解调器的本质是一个复数乘法器,可以将接收到的信号与本地振荡器产生的信号进行相乘,得到解调信号。这种方法的优点是对调制指数不敏感,适用于高质量的解调场合。
相关问题
fm数字信号正交解调后进行反正切差分运算的matlab
代码如下:
```matlab
% 假设原始信号为s,采样率为Fs
% 接收到的信号为r,r = s*cos(2*pi*f*t)
% f为调制信号频率,t为时间向量
% 正交解调
I = r.*cos(2*pi*f*t);
Q = r.*sin(2*pi*f*t);
% 反正切差分运算
phi = atan2(Q, I);
phi_diff = diff(phi);
```
解释:
在正交解调中,将接收到的信号分别与正弦和余弦信号相乘,得到I(即基带信号)和Q(即误差信号)。
在反正切差分运算中,先利用atan2函数将Q和I转换为相位信息,然后计算相邻两个采样点的相位差,即可得到差分相位信息。
matlab生成10.7MHzFM信号并进行fm数字信号正交解调后进行反正切差分运算
以下是一个可能的MATLAB代码实现:
```
% 生成10.7MHz的载波信号
fs = 50e6; % 采样率为50MHz
t = 0:1/fs:1e-4; % 生成0.1ms的时间序列
fc = 10.7e6; % 载波频率为10.7MHz
Ac = 1; % 载波幅度为1
carrier = Ac*cos(2*pi*fc*t); % 生成载波信号
% 生成调制信号
fm = 100e3; % 调频率为100kHz
kf = 10e3; % 调频灵敏度为10kHz/V
Am = 1; % 调幅度为1
mod_signal = Am*cos(2*pi*fm*t); % 生成调制信号
% 进行FM调制
kf = kf/Am; % 将调频灵敏度转换为每单位幅度的调频灵敏度
fm_signal = Ac*cos(2*pi*fc*t + 2*pi*kf*cumsum(mod_signal)/fs); % 进行FM调制
% 进行数字信号正交解调
fif = 10.7e6; % 中频为10.7MHz
I = fm_signal .* cos(2*pi*fif*t); % 乘以本振同频分量
Q = fm_signal .* sin(2*pi*fif*t); % 乘以本振正交分量
[b,a] = butter(6, 2*pi*fm/fs); % 设计6阶Butterworth低通滤波器
I_filtered = filter(b,a,I); % 对I分量进行低通滤波
Q_filtered = filter(b,a,Q); % 对Q分量进行低通滤波
demod_signal = atan2(Q_filtered, I_filtered); % 进行反正切差分运算
% 绘制结果
figure;
subplot(3,1,1);
plot(t, fm_signal);
xlabel('Time (s)');
ylabel('Amplitude');
title('FM modulated signal');
subplot(3,1,2);
plot(t, I_filtered);
hold on;
plot(t, Q_filtered);
xlabel('Time (s)');
ylabel('Amplitude');
title('I and Q components after filtering');
legend('I component', 'Q component');
subplot(3,1,3);
plot(t, demod_signal);
xlabel('Time (s)');
ylabel('Amplitude');
title('Demodulated signal');
```
该代码生成一个10.7MHz的FM信号并进行数字信号正交解调后进行反正切差分运算,最终绘制出调制信号、I/Q分量和解调信号的波形图。其中,使用了Butterworth低通滤波器对I/Q分量进行滤波,同时使用MATLAB中的atan2函数进行反正切差分运算。