DSP ဖြင့် ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခု ပြုလုပ်နည်း

DSP ဖြင့် ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခု ပြုလုပ်နည်း

ဒစ်ဂျစ်တယ်ရေဒီယိုသည် ပိုမိုကောင်းမွန်သော အသံအရည်အသွေးကို ပေးစွမ်းနိုင်ခြင်း၊ ကြိမ်နှုန်းရောင်စဉ်ကို ပိုမိုထိရောက်စွာအသုံးပြုခြင်းနှင့် သီချင်းအချက်အလက် metadata ကဲ့သို့သော အပိုဆောင်းအင်္ဂါရပ်များကြောင့် ပိုမိုရေပန်းစားလာခဲ့သည်။ ဒစ်ဂျစ်တယ်ရေဒီယို ဖွံ့ဖြိုးတိုးတက်မှုတွင် အဓိကအစိတ်အပိုင်းများထဲမှ တစ်ခုမှာ Digital Signal Processor (DSP) ကို အသုံးပြုခြင်းဖြစ်သည်။ ဤဆောင်းပါးတွင် DSP ကို ​​အသုံးပြု၍ ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခု ဖွံ့ဖြိုးတိုးတက်ရေးတွင် ပါဝင်သော အဆင့်များကို ဆွေးနွေးပါမည်။

Pendahuluan

DSP သို့မဟုတ် Digital Signal Processor သည် real-time digital signal processing အတွက် အထူးဒီဇိုင်းထုတ်ထားသော microprocessor တစ်ခုဖြစ်သည်။ digital radio ၏ရှုထောင့်အရ DSP သည် analog signal များကို digital သို့ပြောင်းလဲပြီး ထို signal များကို process လုပ်ကာ နောက်ဆုံးတွင် digital signal များကို ကြားနိုင်သော analog signal များအဖြစ်သို့ ပြန်လည်ပြောင်းလဲပေးသည်။

ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခုပြုလုပ်ရန် အဓိကအစိတ်အပိုင်းများစွာ လိုအပ်ပါသည်-
၁။ အင်တင်နာ- ရေဒီယိုအချက်ပြမှုများကို လက်ခံရန်။
၂။ တျူနာ- လိုချင်သော ရေဒီယိုကြိမ်နှုန်းကို ရွေးချယ်ရန်။
၃။ DSP: ဒစ်ဂျစ်တယ် အချက်ပြမှု စီမံဆောင်ရွက်ခြင်းအတွက်။
၄။ DAC (Digital-to-Analog Converter): ဒစ်ဂျစ်တယ် အချက်ပြမှုများကို အန်နာလော့ အချက်ပြမှုများအဖြစ် ပြန်လည်ပြောင်းလဲရန်။
၅။ လော်စပီကာ သို့မဟုတ် နားကြပ်- အသံထွက်ရန်အတွက်။

အဆင့်တစ်: အစိတ်အပိုင်းများကို ရွေးချယ်ခြင်း

၁။ အင်တင်နာ
အသုံးပြုထားတဲ့ အင်တင်နာဟာ သင်လက်ခံရရှိလိုတဲ့ ကြိမ်နှုန်းနဲ့ ကိုက်ညီရပါမယ်။ FM ရေဒီယိုအတွက် တယ်လီစကုပ် အင်တင်နာ ဒါမှမဟုတ် ရိုးရှင်းတဲ့ မိုနိုပိုလ် အင်တင်နာကို ယေဘုယျအားဖြင့် အသုံးပြုလေ့ရှိပါတယ်။

2. အသံဖမ်းကိရိယာ
tuner သည် အသင့်သုံး module တစ်ခု သို့မဟုတ် Si4703 သို့မဟုတ် TEA5767 chip ကဲ့သို့သော အစိတ်အပိုင်းတစ်ခု ဖြစ်နိုင်သည်။ ဤ module များတွင် I2C သို့မဟုတ် SPI interface များ ပါဝင်လေ့ရှိသောကြောင့် microcontroller ကို အသုံးပြု၍ frequency ကို ထိန်းချုပ်ရန် လွယ်ကူစေသည်။

3. DSP
DSP ရွေးချယ်မှုက အရေးကြီးဆုံးအပိုင်းပါ။ ရေဒီယိုအပလီကေးရှင်းတွေမှာ အသုံးများတဲ့ DSP အချို့ကတော့ -
– Texas Instruments (TI) TMS320 စီးရီး
– အန်နာလော့ ကိရိယာများ (ADI) SHARC စီးရီး
– DSP ဆက်စပ်ပစ္စည်းများပါရှိသော STM32 စီးရီး

၄။ ဒီအေစီ
အသံအရည်အသွေးကောင်းမွန်သော DAC များဖြစ်သည့် PCM5102 သို့မဟုတ် ES9018 ကဲ့သို့သော DAC ကို ဒစ်ဂျစ်တယ်အချက်ပြမှုကို အန်နာလော့အချက်ပြမှုအဖြစ် ပြန်လည်ပြောင်းလဲရန် အသုံးပြုနိုင်သည်။

၅။ စပီကာ
ပိုမိုရှင်းလင်းပြီး ကျယ်လောင်သော အသံကို ထုတ်လုပ်ရန်အတွက် active speakers များကို အသုံးပြုနိုင်သည် သို့မဟုတ် PAM8403 ကဲ့သို့သော amplifier module ငယ်တစ်ခုကို အသုံးပြုနိုင်သည်။

စက်ပစ္စည်းဒီဇိုင်း

ပိတ်ဆို့စနစ်

၁။ အင်တင်နာ -> ၂။ တူနာ -> ၃။ DSP -> ၄။ DAC -> ၅။ စပီကာ

ဤစနစ်၏ အဓိကလုပ်ဆောင်ခြင်းမှာ DSP တွင်ရှိပြီး၊ ထိုနေရာတွင် အင်တင်နာမှ အချက်ပြမှုကို လက်ခံရရှိပြီး tuner မှ ရွေးချယ်ပြီးနောက် digital processing အတွက် DSP သို့ဝင်ရောက်ကာ နောက်ဆုံးတွင် DAC မှ analog အချက်ပြမှုအဖြစ်သို့ ပြောင်းလဲပြီး loudspeaker မှတစ်ဆင့် output ထုတ်ပေးသည်။

ဆားကစ်ပုံကြမ်း

၅။ အင်တင်နာ
– tuner input နှင့် ချိတ်ဆက်ထားသော antenna ၏ ရိုးရှင်းသောပုံ။

၂။ တူနာ မော်ဂျူး
– tuner နှင့် frequency control အတွက်အသုံးပြုသော microcontroller အကြား interface diagram။

၃။ DSP
– input signal များကို လက်ခံရယူရန် tuner နှင့် ချိတ်ဆက်ထားသော DSP wiring diagram နှင့် program upload အတွက် microcontroller နှင့်လည်း ချိတ်ဆက်ထားသည်။

၄။ ဒီအေစီ
– စပီကာနှင့် ချိတ်ဆက်ထားသော DSP မှ အန်နာလော့ အချက်ပြမှုသို့ ဒစ်ဂျစ်တယ် အချက်ပြမှု ပြောင်းလဲခြင်း ပုံ။

၅။ စပီကာ
– လိုအပ်ပါက စပီကာနှင့် အသံချဲ့စက် ချိတ်ဆက်ပုံ ရိုးရှင်းသော ပုံ။

Firmware အကောင်အထည်ဖော်မှု

ဟာ့ဒ်ဝဲ ပြီးစီးသွားသည်နှင့် နောက်တစ်ဆင့်မှာ မိုက်ခရိုကွန်ထရိုလာနှင့် DSP တွင် အလုပ်လုပ်မည့် firmware ကို တီထွင်ရန်ဖြစ်သည်။

တူနာကို ထိန်းချုပ်ခြင်း

ပထမဦးစွာ သင့်မိုက်ခရိုကွန်ထရိုလာသည် တူနာနှင့် ဆက်သွယ်နိုင်ကြောင်း သေချာပါစေ။ I2C သို့မဟုတ် SPI ဆက်သွယ်ရေးကို အသုံးပြုသော မော်ဂျူးများအတွက်၊ သင်သည် I2C/SPI စာကြည့်တိုက်ကို သင့်မိုက်ခရိုကွန်ထရိုလာထဲသို့ ပေါင်းစပ်ရန် လိုအပ်ပါသည်။

Arduino ဖြင့် TEA5767 tuner module ကို ထိန်းချုပ်ရန် ဥပမာကုဒ်-

“`cpp
ပါဝင်

ပျက်ပြယ် setup ကို () {
Wire.begin(); // I2C အစပျိုးမှု
Serial.begin (9600);
setFrequency(101.1); // ကြိမ်နှုန်းကို 101.1MHz သို့ သတ်မှတ်ပါ
}

ပျက်ပြယ်ကွင်းဆက် () {
// မလိုအပ်ပါဘူး
}

setFrequency(float frequency) ကို ပျက်ပြယ်စေသည် {
uint16_t frequencyB = 4 (frequency 1000000 + 225000) / 32768;
ဘိုက် ဘာဖာ[5];
buffer[0] = frequencyB >> 8;
buffer[1] = frequencyB & 0XFF;
ဘာဖာ[2] = 0xB0;
ဘာဖာ[3] = 0x10;
ဘာဖာ[4] = 0x00;
ဝါယာကြိုး.beginTransmission(0x60);
Wire.write(buffer, 5); // ဝါယာကြိုး။ ရေးသားရန် (buffer, 5);
ဝါယာကြိုး.အဆုံးထုတ်လွှင့်မှု();
}
``

DSP ဖြင့် အချက်ပြမှု စီမံဆောင်ရွက်ခြင်း

DSP ပရိုဂရမ်းမင်းသည် DSP ၏ အမျိုးအစားနှင့် စွမ်းရည်များပေါ် မူတည်၍ ပိုမိုရှုပ်ထွေးနိုင်သည်။ ဥပမာအားဖြင့် Texas Instruments DSP ဖြင့်၊ သင်သည် Code Composer Studio (CCS) ကို အသုံးပြု၍ DSP သို့ ကုဒ်များ တီထွင်ပြီး အပ်လုဒ်လုပ်ရန် ဖြစ်နိုင်ခြေများပါသည်။

FM signal ကို demodulate လုပ်တဲ့ DSP အတွက် ဥပမာ pseudocode:

“`cpp
အဓိက () ပျက်ပြယ်သွားသော {
initDSP(); // DSP ကို ​​စတင်ပါ
(1) { နေစဉ်
// tuner မှ signal ကိုဖတ်ပါ
signalAnalog = readAnalogInput();

// ဒစ်ဂျစ်တယ် အချက်ပြမှု စီမံဆောင်ရွက်ခြင်း
signalDigital = analog မှ Digital သို့(signalAnalog);
demodulatedSignal = FM_Demodulate(signalDigital);

// အန်နာလော့ ဆစ်ဂနယ်သို့ ပြန်ပြောင်းပါ
အထွက်အချက်ပြမှု = ဒစ်ဂျစ်တယ်သို့အာနာလော့ (ဖြုတ်တပ်ထားသောအချက်ပြမှု);

// DAC သို့ ပို့ပါ
sendToDAC(အထွက်အချက်ပြမှု);
}
}
``

DAC ကို တပ်ဆင်ခြင်း

DSP မှာ လုပ်ဆောင်မှုပြီးဆုံးသွားတဲ့အခါ ဒစ်ဂျစ်တယ်အချက်ပြမှုကို DAC ကို အသုံးပြုပြီး အန်နာလော့အဖြစ် ပြန်ပြောင်းဖို့ လိုအပ်ပါတယ်။ ဒီစနစ်ထည့်သွင်းမှုကို ပုံမှန်အားဖြင့် I2C သို့မဟုတ် SPI မှတစ်ဆင့် ပြုလုပ်လေ့ရှိပါတယ်။ သင်အသုံးပြုတဲ့ DAC ဟာ DSP ကနေ ထွက်လာတဲ့ ဒစ်ဂျစ်တယ်အချက်ပြမှုနဲ့ တွဲဖက်အသုံးပြုနိုင်ကြောင်း သေချာအောင်လုပ်ပါ။

Raspberry Pi ဖြင့် PCM5102 DAC ကို ထိန်းချုပ်ရန် ရိုးရှင်းသော ကုဒ် ဥပမာ-

“`စပါးအုံး
smbus ကို တင်သွင်းပါ

ဘတ်စ်ကား = smbus.SMBus(1)
လိပ်စာ = 0x4C

def set_volume(အသံအတိုးအကျယ်):
bus.write_byte_data(လိပ်စာ၊ ၀x၀၀၊ volume)

အသံအတိုးအကျယ်ကို အတိုင်းအတာတစ်ခုအထိ သတ်မှတ်ပါ ဥပမာ 0x7F
ပမာဏ_သတ်မှတ်ပါ(၁၂၇)
``

စမ်းသပ်ခြင်းနှင့် အမှားပြင်ဆင်ခြင်း

ဆားကစ်တစ်ခုလုံးကို ချိတ်ဆက်ပြီး firmware ကို အပ်လုဒ်လုပ်ပြီးသည်နှင့် နောက်တစ်ဆင့်မှာ အစိတ်အပိုင်းအားလုံး ကောင်းမွန်စွာ အလုပ်လုပ်ကြောင်း သေချာစေရန် စမ်းသပ်ခြင်းဖြစ်သည်။

စမ်းသပ်ခြင်းဆိုင်ရာ အကြံပြုချက်များ

၁။ Incremental Testing ကို လုပ်ဆောင်ပါ- ပေါင်းစပ်ခြင်းမပြုမီ အစိတ်အပိုင်းတစ်ခုစီကို သီးခြားစီစမ်းသပ်ပါ။
၂။ Oscilloscope ကိုသုံးပါ- ဆားကစ်ပတ်လမ်းရှိ နေရာအမျိုးမျိုးတွင် အချက်ပြလှိုင်းပုံစံကို လေ့လာရန်။
၃။ Incremental Debugging: ပြဿနာတစ်ခုရှိပါက DSP ထဲသို့မဝင်မီ HF component မှ ပြဿနာကို သီးခြားခွဲထုတ်ပါ။
၄။ ဝင်ရောက်စွက်ဖက်မှုကို အာရုံစိုက်ပါ- အင်တင်နာ၏ အနေအထားနှင့် အကာအကွယ်သည် အချက်ပြမှု အရည်အသွေးကို ထိခိုက်စေနိုင်သည်။

နောက်ဆုံးအနေနဲ့ အစိတ်အပိုင်းအားလုံး ကောင်းမွန်စွာ အလုပ်လုပ်နေမယ်ဆိုရင် သင်တည်ဆောက်ထားတဲ့ စနစ်ကနေ ကြည်လင်ပြတ်သားတဲ့ အသံအရည်အသွေးနဲ့ ဒစ်ဂျစ်တယ်ရေဒီယိုကို နားဆင်နိုင်ပါတယ်။

နိဂုံး

DSP ဖြင့် ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခုတည်ဆောက်ရန် ဒစ်ဂျစ်တယ်အချက်ပြ ဟာ့ဒ်ဝဲနှင့် ပရိုဂရမ်းမင်းကို ကောင်းစွာနားလည်ရန် လိုအပ်ပါသည်။ ဂရုတစိုက်စီစဉ်ခြင်းနှင့် သင့်လျော်သော အစိတ်အပိုင်းရွေးချယ်မှုဖြင့် အရည်အသွေးမြင့် ဒစ်ဂျစ်တယ်ရေဒီယိုတစ်ခုကို သင်ဖန်တီးနိုင်ပါသည်။ DSP သည် အချက်ပြလုပ်ဆောင်မှုတွင် ပြောင်းလွယ်ပြင်လွယ်ရှိစေပြီး ရိုးရာ အန်နာလော့နည်းလမ်းများဖြင့် မဖြစ်နိုင်သော အပိုဆောင်းအင်္ဂါရပ်များစွာကို ဖွင့်ပေးပါသည်။ သင့်ကိုယ်ပိုင် ဒစ်ဂျစ်တယ်ရေဒီယိုကို တည်ဆောက်ပြီး သင့်ကြိုးစားအားထုတ်မှု၏ အသီးအပွင့်များကို ခံစားလိုက်ပါ။

မှတ်ချက်ရေးပါ