通信原理實踐(三)——FM調制


一、FM調制

image

1、代碼如下:

clc,clear;

fm = 500; % 調制信號頻率(Hz)
Am = 0.5; % 調制信號幅度
fc = 5e3; % 載波頻率(Hz)
Ac = 1; % 載波幅度
mf = 5; % 調頻指數


%%
%firstly
kf = mf * 2 * pi * fm / Am
diatf = kf * Am
B = 2 * (mf + 1) * fm

%%
%secondly
fs = 64e3; % 采樣率
N = 3000; % 樣點總數
t = (0:N-1)'/fs; % 時間t

%繪制時域波形
m_t = Am*sin(2*pi*fm*t); % 調制信號
phi_t = kf*cumsum(m_t)/fs; % 相位積分
s_t = cos(2*pi*fc*t + phi_t); % 已調信號\
figure(1)
subplot(1,3,1)
plot(t, s_t , 'b'); % 繪波形
xlabel('time');
ylabel('amplitude');
title('時域波形');

%繪制功率譜
L = length(s_t);               % 取得序列長度
u = fftshift(fft(s_t ));       % 離散傅里葉變換,求頻譜
u_pow = pow2db(abs(u).^2);     % 幅度轉為dB
w = (0:L-1)'*fs/L - 1/2*fs;    % 橫坐標-頻率

subplot(1,3,2);
plot(w, u_pow);
grid on;
xlabel('frequency(Hz)');
ylabel('magnitude(dB)');
title('功率譜');




%%
%fortly

[lpf_b,lpf_a] = butter(3, (fc/5)/(fs/2)); % 設計低通濾波器
t = (0:N-1)'/fs; % 時間t
r_t = s_t;
subplot(1,3,3)
r_d_t = [0;diff(r_t)]; % 求微分
r_e_t = abs(r_d_t); % 包絡檢波
demod_t = filter(lpf_b, lpf_a, r_e_t); % 濾波
plot(t, demod_t , 'b'); % 繪圖
title('解調波形');


%%
%thirdly
fs_J=100e3;
t=(0:N-1)';
N_J=3000000;
t_J=(0:N_J-1)';
 
sm=Am*cos(2*pi*fm/fs*t);
sfm_J=Ac*cos(2*pi*fc/fs_J*t_J+mf*sin(2*pi*fm/fs_J*t_J));

Sfm=fft(sfm_J);
figure;
plot(abs(Sfm));
 
i=0:9
J=besselj(i,mf);
J_comp=abs(J/J(1))

 

2、結果分析

image

image

 

在進行功率譜分析的時候,可以將采樣點增大,而繪圖的采樣點不變,這樣子得到的功率譜會更加離散,便於和貝塞爾函數進行比較。

 

二、L+R音頻調制

image

1、流程設計

image

2、代碼如下

clear all;clc;

%載入信號
load('fm_cap.mat');
fm_cap = resample(fm_cap,1,4);  %降低采樣率

fs = 500e3;                % 采樣率
N = length(fm_cap);        % 樣點數
t = (0:N-1)'/fs;           % 時間t

r_d_t = [0;diff(fm_cap)];  % 求微分
r_e_t = abs(hilbert(r_d_t));
r_e_t = r_e_t - sum(r_e_t)/N;


plot(t, r_e_t , 'b');      % 繪圖
[lpf_b,lpf_a] = butter(5, 10e3/(fs/2)); % 設計低通濾波器
demod_t = filter(lpf_b, lpf_a, r_e_t); % 濾波

demod_t = resample(demod_t,16,125);
demod_t = demod_t ./ max(demod_t);
sound(demod_t,64e3);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM