Orodha ya maudhui:
- Hatua ya 1: Orodha ya Vifaa (chukua Picha ya Bodi na Comp ya Kevin)
- Hatua ya 2: Muhtasari
- Hatua ya 3: Faili ya Wav
- Hatua ya 4: Python- Matumizi ya Pylab na Scipy
- Hatua ya 5: Sampuli ya Python na FFT (Onyesha Msimbo na Matokeo yake)
- Hatua ya 6: Vivado (Comparator)
- Hatua ya 7: PICHA ZA BASI 3 Bodi
- Hatua ya 8: Vivado (Sehemu ya 7 ya kusimba na Multiplexing)
- Hatua ya 9: Vivado (Kuchanganya Vipengele)
Video: Tuner: Hatua 9
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Mradi huu uliundwa kutengeneza tuner ya gitaa kwa kutumia Vivado na onyesho la sehemu 7. Mara tuner inapopata mzunguko wa sauti iliyoingizwa, tuner italinganisha thamani hiyo na orodha ya nambari zenye nambari ngumu kwa masafa halisi ambayo yanajulikana kama masafa ya kiwango cha lami sahihi ya noti. Kisha tuner itaonyesha jinsi sauti yako iliyoingizwa iko karibu au mbali kutoka kwa maandishi yako unayotaka. Kinachofurahisha ni kwamba wimbi la sauti ni mchanganyiko wa anuwai ya mawimbi ya sinusoidal na vitu halisi na vya kufikiria. Ingawa hii inaweza kuonekana kuwa ngumu kufanya kazi na wale wasiojulikana, kuna njia chache ambazo tunaweza bado kuchambua wimbi na maadili halisi na ya kufikiria.
Maonyesho:
Hatua ya 1: Orodha ya Vifaa (chukua Picha ya Bodi na Comp ya Kevin)
Kwanza tunahitaji bodi ya Basys 3 na kompyuta inayounga mkono programu zifuatazo. Greyband / Audacity au DAW nyingine - kurekodi kupitia kipaza sauti na wavfiles za kuuza nje.
Chatu - anayeweza kutumia pylab na scipy kwa sampuli na fft
Vivado - kuungana na bodi ya Basys 3 na kuibua kuona matokeo
Hatua ya 2: Muhtasari
Tuner imeundwa na vitu kadhaa muhimu: kipaza sauti, sampler, FFT (Fast Fourier Transform), kulinganisha, kisimbuzi, na onyesho. Kusudi la kipaza sauti ni kukamata muundo wa mawimbi ya pembejeo. Sampuli hupokea ishara ya pato ya kipaza sauti na hutumia FFT kubadilisha ishara kuwa pato la ukubwa katika masafa. Kisha kutumia pato la FFT na kupata ukubwa wa juu na masafa yanayohusiana nayo yamegawanywa na 2, masafa yanayohusiana na lami ya umbizo la mawimbi yanaweza kupatikana. Thamani hiyo inaweza kwenda kwa kulinganisha. Halafu inalinganishwa na meza ya kutazama, ambayo tayari imeweka maadili ya masafa kwa viunga kamili vya noti zote. Kilinganishi hupewa pembejeo kwa dokezo linalohitajika, ambalo linaweza kulinganisha noti inayotakiwa na masafa sahihi kutoka kwa meza ya kutazama. Kisha kulinganisha atachagua daftari na masafa ya karibu zaidi kwa kiwango cha juu. Mlinganishi atalinganisha maadili mawili na kuona karibu thamani ya masafa ni kwa ile inayotakikana na kisha kuweka data hiyo kwa ishara. Mlinganishi atatuma ishara hiyo kwa dekoda, ambapo kisimbuzi kitachagua pembejeo za anode za onyesho la sehemu 7 kuonyesha usahihi wa maandishi.
Hatua ya 3: Faili ya Wav
Katika hatua hii, tutachukua faili ya wav ya lami na jaribu kutoa masafa ya lami hiyo.
Kwanza unahitaji faili ya wav ya maandishi. Katika mfano huu tutatumia faili ya wav ya stereo 16 kidogo na kiwango cha sampuli ya 44.1kHz. Hii inaweza kuundwa katika DAW kama vile Garageband au kupakuliwa. Kwa mfano huu, wimbi la Sine la A4 440Hz linalotokana na sisi kwenye Garageband linaweza kupakuliwa hapa.
Hatua ya 4: Python- Matumizi ya Pylab na Scipy
Tulitumia maktaba ya Python kwa kufanya "Fast Fourier change". Rasilimali mkondoni ilituruhusu kuiga na kuona ni nini kinachofaa katika pylab na skipy.
1. Ikiwa haujaweka pylab au scipy, unahitaji kufanya hivyo. Au, Pycharm ina huduma nzuri sana, unapojaribu kuagiza pylab au skipy, kuna mstari uliopigwa unaokuambia kuwa haujasakinisha maktaba bado. Kisha unaweza kuziweka moja kwa moja kwa kubonyeza balbu nyekundu (itaonekana unapoweka mshale wako karibu na msisitizo wa squiggly).
Kutumia kazi ya kusoma ya scipy.io.wavfile.read, soma na utoe data kutoka kwa faili ya wav ya sampuli. Tumia data kwa pylab.fft, itakurudishia orodha ya ukubwa wa nguvu.
3. Kisha pata upeo wa nguvu iliyotolewa kutoka kwenye orodha. Angalia orodha ya orodha ambapo nguvu ya juu inatokea kwa sababu njia ya haraka ya kupata ni masafa gani yanayohusiana na nguvu hiyo. Mwishowe rudisha masafa ya juu. Kwa kuwa baadaye tunahitaji kuingiza ishara ya masafa ya binary kwenye nambari ya VHDL, tunaweza kubadilisha frequency katika kuelea kuwa binary, na kuirudisha.
Hatua ya 5: Sampuli ya Python na FFT (Onyesha Msimbo na Matokeo yake)
Katika hatua hii, deni kamili huenda kwa kiunga hiki hapa chini kwa sampuli na FFT.
samcarcagno.altervista.org/blog/basic-sound ……. Nambari yetu:
Baada ya kuwekewa pylab na skipy, faili za wav zinaweza kuingizwa na kusoma.
kutoka kuagiza pylab * kutoka kwa wavfile ya scipy.io kuagiza
sampFreq, snd = wavfile.read ('440_sine.wav')
Kisha snd.shape inawakilisha alama za mfano na idadi ya vituo. Kwa upande wetu, alama za sampuli zinategemea urefu wa wavfile na # ya vituo ni 2 kwa sababu ni stereo.
Halafu snd = snd / (2.
hupanga ishara ya wakati kuwa safu.
Kisha FFT huunda safu katika masafa na ukubwa (Nguvu)
Halafu kupitia kitanzi kwa muda ukubwa wa juu na masafa yanayohusiana nayo hupatikana. Mzunguko huo / 2 inawakilisha lami ya wavfile.
Kisha tukitumia nambari yetu wenyewe, nambari kamili inayowakilisha masafa ilibadilishwa kuwa nambari ya binary 12 na faili ya maandishi iliundwa na nambari hiyo ndani yake.
Hatua ya 6: Vivado (Comparator)
Katika sehemu hii ya mchakato, tunahitaji kilinganishi kulinganisha masafa mawili ya pembejeo.
1. Imeunda kulinganisha ili kulinganisha ikiwa masafa ya pembejeo (mpokeaji) ni ya juu, ya chini au ndani ya alama ya kiwango cha pembezoni ya 2 Hz. (tuner ya gita ya kawaida ni kati ya e2 hadi g5, 82 Hz hadi 784 Hz).
2. Wakati wa kuunda margin ya 2 Hz, tulitumia RCA kuongeza "000000000010" kwenye masafa ya mpokeaji, na angalia ambapo bado iko chini sana kwa uingizaji wa mtumiaji. Ikiwa ndivyo ilivyo, ishara kidogo "juu" <= '0', "chini" <= '1'. Kisha tunaongeza "000000000010" kwa pembejeo ya mtumiaji angalia ikiwa pembejeo ya mpokeaji ni kubwa zaidi kuliko hiyo. Ikiwa ndivyo ilivyo, "juu" <= '1', "chini" <= '0'. Wala kesi hiyo ingeweza kurudi '0'.
Kwa kuwa sehemu inayofuata ya moduli inahitaji data maalum ya 4-bits ili kujua ni nini kipokezi cha mpokeaji, sio tu kurudisha matokeo 2 ya kulinganisha (ya chini na ya juu), tunahitaji kurudisha mshirika wa nambari ili kutambua, ambayo inahusiana na mzunguko. Tafadhali rejelea chati hapa chini:
C | 0011
C # | 1011
D | 0100
D # | 1100
E | 0101
F | 0110
F # | 1110
G | 0111
G # | 1111
A | 0001
# | 1001
B | 0010
Kutumia taarifa kadhaa ikiwa kuzipanga kwa muhtasari na kuziingiza kwenye kile kinachohitajika kwa kisimbuzi cha sehemu saba.
Hatua ya 7: PICHA ZA BASI 3 Bodi
Hatua ya 8: Vivado (Sehemu ya 7 ya kusimba na Multiplexing)
Kila kitu kinahitaji kuonyesha. Ni jambo muhimu ambalo huamua dhamana ya muundo. Kwa hivyo, tunahitaji kuunda onyesho kwa kutumia daftari ya sehemu saba, ambayo itaturuhusu kuonyesha uwezo wetu wa kubuni tuner kwenye Bodi ya B. Pia, itatusaidia katika kujaribu na utatuzi.
Decoder ya sehemu saba ina pembejeo zilizoitwa Kumbuka, chini, juu, na CLK, wakati ikitoa SSEG, AN, na Fiz_Hz. Kuna picha ya mchoro wa block hapo juu kutusaidia kuelewa muundo.
Kusudi la kuwa na pembejeo mbili za chini na za juu ni kumpa mbuni wa kulinganisha uhuru wa kudhibiti ikiwa masafa ya sauti (mawimbi) ni ya juu au chini kuliko masafa ya pembejeo (Fix_Hz) ambayo mtumiaji anataka kulinganisha. Kwa kuongeza, pato la SSEG linawakilisha sehemu saba za kuonyesha na nukta inayofuata wakati AN inawakilisha anode ambazo seti za sehemu saba zinaonyesha kuwaka.
Katika dawati hii ya sehemu saba, saa (CLK) ina jukumu muhimu katika kuonyesha maadili mawili tofauti kwenye anode mbili au zaidi tofauti. Kwa kuwa Bodi hairuhusu kuonyesha maadili mawili tofauti kwa wakati mmoja, lazima tutumie multiplexing kuonyesha thamani moja kwa wakati, wakati tunabadilisha kuwa nambari nyingine haraka sana ambayo macho yetu hayawezi kuinasa. Hapa ndipo pembejeo ya CLK inapoanza.
Kwa habari zaidi, tafadhali rejea nambari ya chanzo.
Hatua ya 9: Vivado (Kuchanganya Vipengele)
Na kila moduli (kipokezi cha chatu, kilinganishi, kisimbuzi cha sehemu saba, n.k.) imekamilika, kisha tukaweka pamoja kwa kutumia moduli kubwa. Kama picha iliyoonyeshwa chini ya sehemu ya "Over view", tunaunganisha kila ishara ipasavyo. Kwa kumbukumbu, tafadhali angalia nambari yetu ya chanzo "SW_Hz.vhd".
Asante. Natumahi unafurahiya.
Ilipendekeza:
Jinsi ya kutengeneza Tuner ya Gitaa ya Arduino: Hatua 4
Jinsi ya kutengeneza Tuner ya Guitar ya Arduino: Haya ni maagizo ya kutengeneza tuner ya gita kutoka Arduino na vifaa vingine kadhaa. Ukiwa na ujuzi wa kimsingi wa vifaa vya elektroniki na usimbuaji utaweza kutengeneza tuner hii ya kwanza. Vitu vya kwanza kwanza unapaswa kujua ni vifaa gani.Ma
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)
Tuner ya Gitaa ya Arduino: Hatua 3
Tuner ya Guitar ya Arduino: Hapa kuna kinasa gita nilichotengeneza na Arduino Uno na vitu kadhaa nilikuwa nimelala karibu. Inafanya kazi kama hii: Kuna vifungo 5 kila moja ambayo itatoa noti tofauti katika ufuatiliaji wa gita ya kawaida EADGBE. Kwa kuwa nilikuwa na vifungo 5 tu, niliandika nambari kwa hivyo
Tuner ya Ukelele Kutumia LabView na NI USB-6008: Hatua 5
Tuner ya Ukelele Kutumia LabView na NI USB-6008: Kama mradi wa kujifunza msingi wa shida kwa LabVIEW yangu & Kozi ya vifaa katika Chuo cha Humber (Teknolojia ya Uhandisi wa Elektroniki), niliunda tuner ya ukulele ambayo itachukua pembejeo ya analog (sauti ya kamba ya ukulele), pata mzunguko wa kimsingi,
Rekebisha Kamba ya Tuner ya Vintage: Hatua 11 (na Picha)
Rekebisha Kamba ya Kitafutaji cha Redio ya Mazabibu: Tayari kuna mafunzo mazuri sana kwenye redio za mavuno, lakini nilikuwa na shida maalum: redio inageuka kwenye redio hufanya kelele, na inazidi kuwa kubwa na kitovu cha sauti lakini kugeuza kitovu cha kusongesha hakusogezi sindano au chan