1.AM的模擬調製過程
AM訊號是一種振幅調製訊號,其攜帶的資訊儲存在其訊號的振幅中,透過改變載波的振幅來實現基帶資料的傳輸。
其函式表示式如下:
其中:
A
:表示基帶訊號載入的直流分量。
m(t)
:表示基帶訊號。
\(cos(2\pi ft + \varphi )\):表示載波訊號。
2.AM的數字解調
AM解調的方法有很多種,以下只簡單介紹兩種,分別為非相干解調(包絡面解調法)和相干解調(正交解調法)。一般的相干解調法要求產生一個與調製載波嚴格等頻等相的載波用於訊號的解調,抗載頻失配能力較差,畢竟出現頻差或者相差就會對解調出來的訊號產生較大的誤差。
以下介紹的正交解調法將消除頻差或者相差帶來的誤差,增加其解碼正確率。
透過正交的方式即可解調出基帶訊號,其數學推導如下:
假設基帶訊號頻率為f1,調製的載波頻率為f2,直流訊號為A,解調的載波頻率為f3,則:
I路:
根據三角函式公式:
經過低通濾波器,不考慮濾波器增益:
設解調的載波與調製的載波的頻率偏移為f4:
則:
同理可求得Q:
還原訊號:
這樣就消除了相位差帶來的誤差,同時這個有個前提:$$A + m(t)$$必須大於0,不過經過AM調製,一定是大於0的。否則將出現失真。
由上式可以推斷出解調的載波與調製的載波的頻率偏移頻率,只要位於設計的濾波器的頻寬內,就可以解調出原始訊號,與偏移量的大小無關。只要保證在獲取I路訊號和Q路訊號的濾波器能正確將高頻訊號濾除,透過IQ求模,就可以成功將頻差相位差兩個變數消除。
3.去直流
解調出來的訊號中包含了一個直流訊號A,在頻譜分析中我們一般將直流訊號當作頻率為0的正弦訊號,那麼這樣我們就可以透過濾波器的方式對直流進行處理。
1.均值濾波器
將直流訊號分量計算出來,將原訊號減去直流訊號就可以獲取到基帶訊號。
均值濾波器表示式:
matlab:
close all;
N1 = 64;
N2 = 128;
N3 = 256;
a = ones(N1,1)/N1;
b = ones(N2,1)/N2;
c = ones(N3,1)/N3;
figure('menubar','figure');
[h1, w1] = freqz(a,1,2048,1000);
[h2, w2] = freqz(b,1,2048,1000);
[h3, w3] = freqz(c,1,2048,1000);
plot(w1, abs(h1),'DisplayName',num2str(N1));
hold on
plot(w2, abs(h2),'DisplayName',num2str(N2));
hold on
plot(w3, abs(h3),'DisplayName',num2str(N3));
title('Amplitude Response');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
legend('show');
可以看出均值濾波器實際上是一種特殊大的均值濾波器,隨著N的變大,其截至頻率變小。所以可以根據需求選擇適當的截至頻率,從而濾除除直流外的其餘頻率分量,從而分離出直流訊號。
2.高通濾波器
均值濾波器採用分離出直流的方法來算出基帶訊號,高通濾波器則取樣濾除直流訊號,保留基帶訊號的方式來處理資料。可以透過matlab的工具filterDesigner來設計一個滿足需求的高通濾波器。涉及要求,基帶訊號頻率大於通帶頻率。且越靠近0頻效果越好。