采用MCS-51單片機(jī)實(shí)現(xiàn)CPFSK調(diào)制
對(duì)于一個(gè)周期函數(shù)可以進(jìn)行傅里葉級(jí)數(shù)的展開,級(jí)數(shù)的一般表達(dá)式為:
當(dāng)按上述方法進(jìn)行PWM調(diào)制時(shí),圖2下圖函數(shù)傅里葉級(jí)數(shù)的an均為0,當(dāng)n為偶數(shù)時(shí),bn也為0。所以正弦波PWM調(diào)制的傅里葉級(jí)數(shù)為:
根據(jù)階梯圖形表示連續(xù)曲線時(shí),階梯越細(xì)圖形越精確的原理,認(rèn)為用PWM調(diào)制正弦波時(shí),時(shí)段分割越多,調(diào)制出的正弦波越精確。如果不考慮級(jí)數(shù)中的直流成分,可以得到不同時(shí)段的諧波系數(shù),如表1所示。
從表1可以看出,諧波系數(shù)隨著諧波次數(shù)的增加逐漸減小,但在n=K-1處系數(shù)會(huì)突然增大,之后又逐漸減小。而這種突然增大的比值隨著時(shí)段分割數(shù)的增加總體呈下降趨勢(shì)。
另一方面,突然增大的比值,隨著時(shí)段分割數(shù)的增加而向高次諧波方向移動(dòng)。對(duì)這種遠(yuǎn)離基波的高次諧波,只要采用低通濾波器就能很容易將其去除,我們所關(guān)心的是如何盡可能減小基波附近諧波的系數(shù)。
從表1可以看出,隨著時(shí)段分割數(shù)的增加,離基波較近的諧波系數(shù)也呈下降趨勢(shì)。所以通過(guò)對(duì)時(shí)段的細(xì)分,信號(hào)的高次諧波,特別是接近基波的諧波成分會(huì)進(jìn)一步減少。
2 信號(hào)輸出
由于采用了正弦波PWM調(diào)制,單片機(jī)輸出信號(hào)只要經(jīng)過(guò)簡(jiǎn)單的低通濾波器就可以得到平滑的正弦波信號(hào)。圖3中的74HC04是CMOS反相器,這里它起緩沖驅(qū)動(dòng)作用。
因?yàn)?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/單片機(jī)">單片機(jī)的P1~P3口是準(zhǔn)雙向口。作為輸出口時(shí)低電平有一定的吸收電流能力,但高電平輸出電流的能力很小,這就使輸出信號(hào)的開關(guān)特性有較大差異。而CMOS反相器的輸出采用P溝道和N溝道MOS管構(gòu)成的對(duì)稱互補(bǔ)結(jié)構(gòu),使輸出信號(hào)的“0、1”有相同的開關(guān)特性,能保證低電平的吸收電流和高電平的輸出電流相同。圖3中R1、R2為1kΩ的電阻,C1、C2、C3為0.1μF的獨(dú)石電容。當(dāng)時(shí)段分割為20,正弦波信號(hào)頻率為1180Hz時(shí),圖3中A、B、C三個(gè)端口的輸出波形如圖4所示。
3 CPFSK調(diào)制
軟件調(diào)制是將正弦波分為若干個(gè)時(shí)段,并計(jì)算出每個(gè)時(shí)段內(nèi)高電平和低電平所占用的時(shí)間,這些時(shí)間在單片機(jī)中用軟件延時(shí)實(shí)現(xiàn)。
為了敘述方便,首先定義幾個(gè)符號(hào):
φ――軟件調(diào)制所在的相位;
T――相位角為φ時(shí)對(duì)應(yīng)時(shí)段的機(jī)器周期總和;
T1――相位角為φ時(shí)對(duì)應(yīng)時(shí)段的高電平機(jī)器周期;
T0――相位角為φ時(shí)對(duì)應(yīng)時(shí)段的低電平機(jī)器周期;
T1180――相位角為φ時(shí)頻率為1180Hz正弦波對(duì)應(yīng)時(shí)段的機(jī)器周期總和;
T980――相位角為φ時(shí)頻率為980Hz正弦波對(duì)應(yīng)時(shí)段的機(jī)器周期總和。
根據(jù)圖2中面積相等,即S1=S2的要求可以得到:
如果單片機(jī)的晶振頻率為11.0592MHz,完成頻率為980Hz的正弦波調(diào)制需要=940個(gè)機(jī)器周期,完成頻率為1180Hz的正弦波調(diào)制需要
=781個(gè)機(jī)器周期。20等分能夠?qū)?40整除,得到每個(gè)時(shí)段的機(jī)器周期數(shù)T980=47。但
=39余1,如果將余數(shù)1丟掉,就會(huì)造成頻率為1180Hz的正弦波頻率誤差變大。實(shí)際編程時(shí)可以將余數(shù)1插補(bǔ)在20個(gè)時(shí)段中的某個(gè)時(shí)段中,也就是19個(gè)時(shí)段為T1180=39個(gè)機(jī)器周期,1個(gè)時(shí)段為T1180=40個(gè)機(jī)器周期。T0和T1的計(jì)算如表2所示。
評(píng)論