Orodha ya maudhui:

Tuner: Hatua 9
Tuner: Hatua 9

Video: Tuner: Hatua 9

Video: Tuner: Hatua 9
Video: Generate Studio Quality Realistic Photos By Kohya LoRA Stable Diffusion Training - Full Tutorial 2024, Julai
Anonim
Image
Image
Orodha ya Vifaa (chukua Picha ya Bodi na Comp ya Kevin)
Orodha ya Vifaa (chukua Picha ya Bodi na Comp ya Kevin)

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

Maelezo ya jumla
Maelezo ya jumla

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

Faili ya Wav
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

Chatu- Matumizi ya Pylab na Scipy
Chatu- 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)

Vivado (Comparator)
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

PICHA ZA BASI 3 Bodi
PICHA ZA BASI 3 Bodi

Hatua ya 8: Vivado (Sehemu ya 7 ya kusimba na Multiplexing)

Vivado (Sehemu ya 7 ya Decoder na Multiplexing)
Vivado (Sehemu ya 7 ya Decoder 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: