Gali būti kažkas šia tema

A

Aya2002

Guest
Mėginių ėmimas---------------------------
Konvertavimas analoginį signalą į skaitmeninį yra būtinas žingsnis, kad kompiuteris
analizuoti signalas: moderni kompiuterių skaitmeninių mašinų, ir gali laikyti tik skaitmeninės vertės.

, the continuous variable, with nTs
, a discrete value.

Į tęstinis funkcija x (t), zmieniamy t,

nuolat kintama, su NTS,
atskira vertė.

to index the discrete array, and Ts
is the sampling period, the amount of time between two samples.

Mes naudojame n
indeksuoti diskrečiųjų masyvas,
o T
yra bandinių paėmimą, laiką tarp dviejų pavyzdžių.Ėminio ėmimo trukmė yra atvirkščiai proporcingas ėminių ėmimo dažnis fs,
ty T = 1/fs.

Kad mes galime kalbėti apie mėginių, mums skambinti dažnių diapazone signalo
kad mes suinteresuoti pralaidumą.Kartais mes tiesiog naudoti aukščiausios
dažnumu, koks pralaidumą, tai reiškia, kad mes suinteresuoti visi dažniai nuo 0 Hz iki maksimalaus.Kiti kartus, gali būti ribojamas, pavyzdžiui, matomos šviesos spektrą.

applies to the case when the sampling rate is exactly twice

the bandwidth, B. This means that we will record the signal just fast enough to properly reconstruct it later, ie, fs = 2B.

Terminas kritiškai mėginių ėmimo

taikoma tuo atveju, kai mėginių ėmimo dažnis yra tiksliai du kartus

pralaidumą, B. Tai reiškia, kad mes išlaikysime signalą tik pakankamai greitai tinkamai atkurti vėliau, ty, fs = 2B.

, fs ≥2B, and choosing the lowest possible sampling frequency.

Mes šią vertę gauti remiantis Nyquist Kriterijus,
fs ≥ 2B, ir pasirinkus žemiausią įmanomą dažnis.

is taking samples more frequently than needed (or more than 2 times the bandwidth).

Oversampling

yra imami mėginiai dažniau nei reikia (arba ne daugiau kaip 2 kartus pralaidumą).Todėl daugiau pavyzdžių kaip reikia.may be something you would want to do if you are working with cheap hardware, such as an inexpensive digital-to-analog converter, which appears to be the case with CD players.

Galite naudoti perdiskretizavimą, bet jūs galite nenorėti dėl aparatūros apribojimų, kaip iš tikrųjų negali procesą pakankamai greitai, ar ne galėtų saugoti atmintyje. Oversampling

gali ką nori daryti, jei jūs dirbate su pigūs įrangos, pavyzdžiui, nebrangios Skaitmenų-analoginis keitiklis, kuris, atrodo, kai su CD grotuvai.Nebrangi skaitmeninis-analoginis keitiklis gali naudoti paprastos funkcija atkurti signalo.Todėl, kuo daugiau pavyzdžių jis turi dirbti su mažesnio laiko tarp mėginių, ir geriau atitinka originalą.Kaip kovoti su, pavyzdžiui, skaitant (ir saugojimas) temperatūra kas mikrosekundę būtų didžiulės apimties duomenis be naudos prognozuoti rytojaus oras.

occurs when we do not take samples often enough, less than twice the bandwidth.

Undersampling

atsitinka, kai mes negalime imti mėginius pakankamai dažnai, mažiau kaip du kartus pralaidumą.You
wouldn't norite naudoti, nes negalima atkurti signalo.Be to, bet analizė atliekama dėl undersampled signalas greičiausiai bus klaidinga (kaip mes kalbame, kompiuterių programavimo, \ šiukšles į šiukšlių out ").

x [n] = x (NTS) apibūdinami atrankos procesas.Ts yra mėginių ėmimo laiką, o
n yra indeksas.Tai reiškia, kad nepertraukiamo signalo x yra konvertuojamos į skaitmeninį
atstovavimą.x [n], yra ne tokie patys kaip x (t).Ji negali būti, kadangi x (t) yra
tęstinumą.Geriausiu atveju x [n] yra apytikriai x (t).

Laikotarpį, kad signalas yra laiko, kol ji kartojasi.Norėdami sinusoid,
mums tik reikia žinoti dažnis f, nes mes apibrėžti laikotarpį, T = 1 / f.
Pavyzdys:Jei mes panaudojome x (t) žemiau ir atrinkti tai 20 kHz, kiek pavyzdžių būtų mes
po 60 ms?

x (t) = 3 cos (2Π404t Π / 4) 2 cos (2Π6510) cos (2Π660t-Π / 5)
Atsakymas:pirmas dalykas, kad pranešimas yra tai, kad mėginių skaičius tikrai nepriklauso nuo
signalo pati.Tai reiškia, kad visi mes turime atsakyti į šį klausimą yra 20 kHz, mėginių ėmimo
norma (FS) ir bendras laikas 60 ms.

Ėminių ėmimo periodas yra 1 / (20 kHz) arba 1 / (20000 Hz).Kadangi Hz ciklų / s,
1/Hz būtų s / ciklų, ar tik kelias sekundes.Mes pirmą mėginio metu = 0,
laukti 1 / (20000) s, ir kitą, ir toliau iki 60 ms = 0,060 sekundės iki.

Norėdami rasti skaičiaus atsakymo, dauginti 0,060 iki 20000, tada pridėti 1 (nes
Pirmasis mėginys buvo paimtas metu 0).Už atsakymus į šį (arba) klausimo dėl bandymų,
svarbu parodyti savo mąstymo procesą.Geras atsakymas būtų įtraukti
analizė (ir redakcija), kaip nurodyta pirmiau.

Ačiū

 
Hi everybody,

Teorija (DSP: proakis)
x [n] = x (nT) čia, CT (tęstinis laikas) signalas t = nT, gauti DT (Diskretusis laikas) seka
jei x (t) = cos (2 * pi * F * t), kur F yra analogas freq.
diskrečiųjų seq x [n] = x (nT) = cos (2 * pi * F * N * T)
T = mėginių ėmimo intervalas = 1/Fs, Fs = Mėginių ėmimo dažnumas (mėginiai / s) n = No.of samplesof x [n] = N
x [n] = x (nT) = cos (2 * pi * F * N * T) = cos (2 * pi * n F * / FS)
kur, diskrečiųjų dažnis f = F / Fs;

Programavimas patarimai:

Pastaba: 1
L. ciklų x [n] = (n * F) / Fs = bendra neturi.laikotarpių in x [n]

Pastaba: 2
ne.mėginių / laikas = n / (n * F / Fs) = Fs / F = L. mėginių 1 laikotarpį.

Pastaba: 3
t = 0: sampleInterval: sekundės;
kur sekundes / sampleInterval = mėginių skaičių per sekundę
t = 0: (1/Fs): (0: N-1) / Fs; kur N = n = no.of mėginių x [n]
Todėl, ilgis (x) = ilgis (t)

Pastaba: 4
Signalas x [n] turės ilgio metu (n / Fs) sekundžių.
ty laiko kintamąjį t kinta nuo 0 iki n / Fs .= viso laiko signalo x [n].laimingas mokymosi

 
Bit to Symbol Žemėlapiai:

į MATLAB galime paversti dvejetainiai vektoriai ir dešimtosios skaičiaus naudojant komandą bi2de taip;

d = bi2de (b)
d = bi2de (b flg)
d = bi2de (b, p)
d = bi2de (b, p, flg)

Aprašymas

d = bi2de (b) paverčia dvejetainiu eilutėje vektoriaus b-ne neigiami dešimtainis sveikasis skaičius.Jei b yra matricos, kiekvienoje eilutėje yra aiškinami atskirai kaip dvejetainis skaičius.Šiuo atveju, produkcijos d stulpelį vektorius, kiekvieno elemento, kuris yra dešimtųjų atstovavimą atitinkamos eilutės b.

d = bi2de (b flg) yra tokia pati kaip ir sintaksės pirmiau, negu flg yra ženklų, kuris nustato, ar pirmasis stulpelis B yra žemiausios tvarkos arba aukščiausios kad skaitmenys.Galimos reikšmės flg yra teisė-TPĮ "ir" kairė TPĮ ".Vertė "dešinėje TPĮ" gamina pagal nutylėjimą.

d = bi2de (b, p) konvertuoti bazė p-eilės vektoriaus b-ne neigiami dešimtainis sveikasis skaičius, kur p yra sveikasis skaičius didesnis nei arba lygus 2.Pirmoje skiltyje B yra mažiausia bazė p-skaitmenų.Jei b yra matricos, produkcijos d ne neigiami dešimtųjų vektorius, kiekvienoje eilutėje yra dešimtainis formos atitinkamos eilutės b.

d = bi2de (b, p, flg) yra tokia pati kaip ir sintaksės pirmiau, negu flg yra ženklų, kuris nustato, ar pirmasis stulpelis B yra žemiausios tvarkos arba aukščiausios kad skaitmenys.Galimos reikšmės flg yra teisė-TPĮ "ir" kairė TPĮ ".Vertė "dešinėje TPĮ" gamina pagal nutylėjimą.

Pavyzdžiai

Šis kodas sukuria matrica, kurioje yra dvejetainiai pateikimo penkių atsitiktinių skaičių nuo 0 iki 15.Po to konvertuoja visus penkis numerius dešimtųjų tarpais.

b = randint (5,4);% Sukurkite 5-by-4 atsitiktinis dvejetainiai matricos.
de = bi2de (b);
disp ( 'gruodis dvejetainiai)
disp ( '----- -------------------')
disp ([de, b])

Pavyzdį žemiau.Jūsų rezultatai gali skirtis, nes šie skaičiai yra atsitiktiniai.

Gruodis Dvejetainiai
----- -------------------
13 1 0 1 1
7 1 1 1 0
15 1 1 1 1
4 0 0 1 0
9 1 0 0 1

Komandų žemiau konwertuje bazės penkių skaičių į savo dešimtųjų šalies, naudojant kairėje bazė penkių skaitmenų (4 šiuo atveju), kaip svarbiausių ženklų.Šis pavyzdys rodo, kad 4 (5 ^ 3) 2 (5 ^ 2) 5 ^ 0 = 551.

d = bi2de ([4 2 0 1], 5, "kairės-TPĮ)

Produkcija

d =

551
čia yra dar vienas pavyzdys:
% konvertuoti bitai x į k bitų simboliai
x = randint (20,1,2);% Sukurti 20 dvejetainiai skaičiai.x_reshaped=reshape(x,5,4); %reshape x to be 5-by-4 matrix, each 4-bits % įtrauktos į vieną eilutę sukurti 5 eilutės kiekvienos
% 4-bitų.
x_decimal = bi2de (x_reshaped "kairėje TPĮ ');
x_decimal_as_row = x_decimal "
foršteveniu (x_decimal_as_row), tinklus;% sklypo simbolių;

Pavyzdys:
x = randint (100,1,2);
x_shd = keisti (x, 25,4);
x_dec = bi2de (x, "kairės-TPĮ ');
foršteveniu (x_dec), tinklus;

Pavyzdys:
x = rand (100,1)> 0,5;% generuoti 100 dvejetainiai skaičiai
x2 = Przefasonować (x 20,5);
Dešimtainis = bi2de (x2, "kairės-TPĮ ');
foršteveniu (dešimtainis (1:10));% kamieninių Sklypas pirmąsias 10 dešimtainis skaičių.

Mėgautis

 
Dabar mes galime sklypo Furjė eilutė atstovavimo naudojant MATLAB ir pamatyti, kaip
serijos ar ne atkurti originalų signalą.Jei mes pažymėti Żrst 20 sąlygomis sumą mes matome, bendros formos originalą funkciją, bet mes matome daug "skambėjimo".Kaip mes sklypo daugiau žodžių, mes matome originalų funkcija yra gana tiksliai.Apskritai Furjė eilutė gali zrekonstruowania signalo nedaug rūšių, jei originalus signalas sklandžiai.Netolydumo reikalauja daug aukšto dažnio komponentus statyti signalo tiksliai.

Nes nuoroda, MATLAB kodas sukurtas šis skaičius yra pateiktas žemiau:

N = 20;
x = [0:100] / 100;
f =
nuo jų (1101) * 1 / 2;
i = 1:2: N
a = 2/pi/i;
f = f a * sin (2 * pi * i * x);
pabaiga
plot (x, f, "r"), kryptis ([-. 5 1.5 0 1.5]); tinklelis<img src="http://images.elektroda.net/19_1236785076_thumb.jpg" border="0" alt=""/> Mėgautis

 
Tai programa Matlab padaryti DfT ir FFT (2-sided ir 1-sided)Sėkmės% FFT paskaita.
CLC; uždaryti visus; aiški visiems;
% Sukurti sine wave sekas
FS = 8000;% Mėginių ėmimo dažnumas
N = 1000;% skaičius duomenų taškus.
x = 2 * sin (2000 * pi * [0:1: N-1] / FS);
skaičius (1);
foršteveniu (1: 1: N/10 x (1: 1: N/10), užpildytas');% sklypo pirmosios 100 mėginio x (n)
%% Taikyti DfT algoritmas
skaičius (2);
xf = abs (FFT (x)) / N;% apskaičiuoti amplitudės spektro
P = xf .* xf;% Apskaičiuoti galios spektrą
% Žemėlapis dažnių bin į dažnis (Hz)
f = [0:1: N-1] * fs / N,% Fs = k FS / N kai k = 0,1,2, ... n-1
% Dabar bus pažymėti DfT spektrą
subplot (211) plot (f, xf); tinklelis
xlabel (dažnis (Hz) '); ylabel (amplitudės spektro (DfT)');
subplot (212) plot (f, P); tinklelis
xlabel (dažnis (Hz) '); ylabel ( "Galios spektro (DfT)');
%% Konvertuoti tai vienašalis spektro
skaičius (3);
xf (2: N) = 2 * xf (2: N);% Atsisiųskite vieną pusę spektras
P = xf .* xf;% Apskaičiuoti galios spektrą
% Žemėlapis dažnių bin į dažnis (Hz)
f = [0:1: N / 2] * fs / N,% dažnis iki atlenkiamosioms dažnis fs / 2
% Dabar bus pažymėti DfT spektrą
subplot (211) plot (f, xf (1: N / 2 1)); tinklelis
xlabel (dažnis (Hz) '); ylabel (amplitudės spektro (DfT)');
pavadinimas ( "vienašalis-Spectrum)
subplot (212) plot (f, P (1: N / 2 1)); tinklelis
xlabel (dažnis (Hz) '); ylabel ( "Galios spektro (DfT)');
pavadinimas ( "vienašalis-Spectrum)
%% Nulis Apmušalas į ilgis 1024
skaičius (4);
x = [x, nulio (1,24)];% 24 nuliui pratęsti seka x (n) nuo 1000 iki 1024
N = trukmė (x);
xf = abs (FFT (x)) / N;% apskaičiuoti amplitudės spektro nulinio padding
P = xf .* xf;% Apskaičiuoti galios spektrą
% Žemėlapis dažnių bin į dažnis (Hz)
f = [0:1: N-1] * fs / N,% Fs = k FS / N kai k = 0,1,2, ... n-1
subplot (211) plot (f, xf); tinklelis
xlabel (dažnis (Hz) '); ylabel (amplitudės spektro (FFT)');
subplot (212) plot (f, P); tinklelis
xlabel (dažnis (Hz) '); ylabel ( "Galios spektro (FFT)');
%% Konvertuoti tai vienašalis spektro
skaičius (5);
xf (2: N) = 2 * xf (2: N);% Atsisiųskite vieną pusę spektras
P = xf .* xf;% Apskaičiuoti galios spektrą
% Žemėlapis dažnių bin į dažnis (Hz)
f = [0:1: N / 2] * fs / N,% dažnis iki atlenkiamosioms dažnis fs / 2
% Dabar bus pažymėti FFT spektrą
subplot (211) plot (f, xf (1: N / 2 1)); tinklelis
xlabel (dažnis (Hz) '); ylabel (amplitudės spektro (FFT)');
pavadinimas ( "vienašalis-Spectrum)
subplot (212) plot (f, P (1: N / 2 1)); tinklelis
xlabel (dažnis (Hz) '); ylabel ( "Galios spektro (FFT)');
pavadinimas ( "vienašalis-Spectrum)

 
labas,

nuorodas į 4 paveiksle, tai reiškia, kad dažnių spektras yra 8k Hz?Thanks for ur reply.

linkėjimai,
jūros dumbliai

 

Welcome to EDABoard.com

Sponsor

Back
Top