首页/文章/ 详情

通信原理与考研 第五章 模拟调制(1)

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/博士学历/特邀专家/独家讲师
平台推荐
内容稀缺
2月前浏览1331
当今社会几乎不用模拟调制技术了,不过在通信发展历史上有它的位置。了解一下可以帮助同学们更好的学习数字调制,有了比较就会激发学习的兴趣。
问了一下考研的同学,很多学校的试卷还是会涉及一些模拟调制的内容,但确实不多。考试的重点内容还是数字调制,毕竟现在社会用的技术基本上都是数字调制,不过收音机里面还是涉及了模拟调制FM技术,但采用的是数字化解调技术。
2024年10月,改版文章,本文长达四千字,希望读者能耐心看完!
一定要记住调制的定义!
后面慢慢领悟这个概念!
说的轻松,做起来很难哦!
幅度调制的模型!

幅度调制原理!

表达式和原理框图
(要掌握,经常会在考试中遇见!)
AM!调幅!
AM是指对信号进行幅度调制。一般做法就是先在原信号上叠加一个直流信号,以保证信号f(t)+A>0。然后乘上一个高频的余弦信号,即得到g(t)=[f(t)+A]coswt。
在频域上的效果就是将原信号的频谱移动到w处,以适合信道传输的最佳频率范围。g(t)的包络线即f(t)+A,用一个简单的包络检测电路就可以接收并还原信号了。

课本中内容!


AM信号的波形(时域)
AM信号的频谱(频域)
如何通过仿真来观察AM信号呢?
看看参考书中的例程!
% Matlab demonstration script for DSB-AM modulation. 
% The message signal is +1 for 0 < t < t0/3, -2 for t0/3 < t < 2t0/3 and zero otherwise.
echo on
t0=.15;                              % signal duration
ts=0.001;                            % sampling interval
fc=250;                              % carrier frequency
snr=10;                              % SNR in dB (logarithmic)
a=0.85;                              % Modulation index
fs=1/ts;                              % sampling frequency
t=[0:ts:t0];                          % time vector
df=0.2;                              % required frequency resolution
snr_lin=10^(snr/10);          % SNR
% message signal
m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];
c=cos(2*pi*fc.*t);                    % carrier signal
m_n=m/max(abs(m));              % normalized message signal
[M,m,df1]=fftseq(m,ts,df);       % Fourier transform 
M=M/fs;                              % scaling
f=[0:df1:df1*(length(m)-1)]-fs/2;    % frequency vector
u=(1+a*m_n).*c;                      % modulated signal
[U,u,df1]=fftseq(u,ts,df);            % Fourier transform 
U=U/fs;                              % scaling
signal_power=spower(u(1:length(t)));  % power in modulated signal
% power in normalized message
pmn=spower(m(1:length(t)))/(max(abs(m)))^2;
eta=(a^2*pmn)/(1+a^2*pmn);            % modulation efficiency
noise_power=eta*signal_power/snr_lin; % noise power
noise_std=sqrt(noise_power);          % noise standard deviation
noise=noise_std*randn(1,length(u));  % generate noise
r=u+noise;                            % add noise to the modulated signal
[R,r,df1]=fftseq(r,ts,df);            % Fourier transform 
R=R/fs;                              % scaling
pause  % Press a key to show the modulated signal power
signal_power
pause  % Press a key to show the modulation efficiency
eta
pause  % Press any key to see a plot of the message
subplot(2,2,1)
plot(t,m(1:length(t)))
axis([0 0.15 -2.1 2.1])
xlabel('Time')
title('The message signal')
pause
pause  % Press any key to see a plot of the carrier
subplot(2,2,2)
plot(t,c(1:length(t)))
axis([0 0.15 -2.1 2.1])
xlabel('Time')
title('The carrier') 
pause  % Press any key to see a plot of the modulated signal
subplot(2,2,3)
plot(t,u(1:length(t)))
axis([0 0.15 -2.1 2.1])
xlabel('Time')
title('The modulated signal')
pause   % Press any key to see a plots of the magnitude of the message and the
% modulated signal in the frequency domain.
subplot(2,1,1)
plot(f,abs(fftshift(M))) 
xlabel('Frequency')
title('Spectrum of the message signal')
subplot(2,1,2)
plot(f,abs(fftshift(U))) 
title('Spectrum of the modulated signal')
xlabel('Frequency')
pause  % Press a key to see a noise sample
subplot(2,1,1)
plot(t,noise(1:length(t))) 
title('noise sample') 
xlabel('Time')
pause  % Press a key to see the modulated signal and noise
subplot(2,1,2)
plot(t,r(1:length(t))) 
title('Signal and noise')
xlabel('Time')
pause  % Press a key to see the modulated signal and noise in freq. domain
subplot(2,1,1)
plot(f,abs(fftshift(U))) 
title('Signal spectrum')
xlabel('Frequency')
subplot(2,1,2)
plot(f,abs(fftshift(R))) 
title('Signal and noise spectrum')
xlabel('Frequency')
建议大家学习下面的参考书!
好书分享之通信经典:《Contemporary Communication Systems using MATLAB》(1)书籍
再来看看本人写的代码!

% Generate carrier signal
carrier = Ac*sin(2*pi*Fc*t);
% Modulation (AM)
AM_signal = (1 + m) .* carrier;
% Demodulation using envelope detection
demodulated_signal = abs(hilbert(AM_signal)) - Ac;  
% Subtract carrier amplitude for original message signal
% Plot results
figure
% Plot message signal
subplot(3,1,1);
plot(t, m);
title('Message Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
% Plot modulated signal
subplot(3,1,2);
plot(t, AM_signal);
title('AM Modulated Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
% Plot demodulated signal
subplot(3,1,3);
plot(t, demodulated_signal);
title('Demodulated Signal');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;
中场休息
同学们要能学会分辨,先培养自己分析问题的能力。不同的人掌握技术的程度不一样,看问题的角度也不一样,工科生应该用工科思维来分辨。学习的过程就是培养思维的过程。如何分辨?
举例来讲,有一次我带父亲去南京医科大学第二附属医院看心脏的问题,一位男主任医师(还是副主任医师)没怎么看就说要做照影,我当时很信任他,就让我父亲做。我父亲不好和我争论,托辞说和我母亲商量一下。结果证明我父亲的决定是正确的,后来找了我好朋友的妻子看了一下,做了一个心脏彩超,发现引起我父亲胸闷的原因是父亲先天性的血管外露。哎,那个要做照影的医生应该是出于拿回扣的目的极力要做照影?我不反对拿回扣,毕竟医生工资很低,但总要有良心的拿啊,不能什么都是为了利益最大化。我后来上网查了一下相关资料,照影确实能看清血管的状态,但是也很痛苦啊。医生的责任重大,希望还是能从患者的角度出发去考虑问题。教师也是如此,要更多的从学生和学生家长的角度去考虑。

那么在实际使用中,AM又如何发挥作用呢?依旧通过程序来说明!这是最好的理论用于实践的过程!这样的学习才真正适用于工科生!

% Load audio signal (as message signal)
[file, path] = uigetfile('*.wav', 'Select an Audio File');  
% Load a .wav file
[audio_signal, Fs_audio] = audioread(fullfile(path, file));
Fs = Fs_audio;  
% Sampling frequency (Hz), usually 11025 Hz - 44100 Hz
% WAV 文件中的关键参数:
% RIFF Header:标识这是一个 RIFF(资源互换文件格式) 文件。
% Format Chunk:
% Subchunk1 ID:通常是 "fmt "。
% Subchunk1 Size:格式块的大小(通常为 16 字节)。
% Audio Format:音频格式(PCM 通常为 1)。
% Num Channels:声道数(例如,1 表示单声道,2 表示立体声)。
% Sample Rate:采样频率,以赫兹(Hz)表示。
% Byte Rate:每秒传输的字节数(Sample Rate × Num Channels × Bits Per Sample / 8)。
% Block Align:每个采样的字节数(Num Channels × Bits Per Sample / 8)。
% Bits Per Sample:每个样本的比特数(通常为 16、24 或 32)。
% Data Chunk:
% Subchunk2 ID:通常是 "data"。
% Subchunk2 Size:音频数据的大小。
% Audio Data:实际的音频样本数据。
% Normalize the audio signal

来源:通信工程师专辑
ACTSystem电路MATLAB通信UM理论Fourier Transform
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-18
最近编辑:2月前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 398粉丝 2605文章 362课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈