Hvordan opretter jeg bestemte frekvenser ?

Frekvens er antallet af vibrationer pr sekund i et signal eller et objekt , normalt betegnes som Hertz ( Hz ) . Mens instrumenter som en guitar eller klaver kan producere bølger med forskellige frekvenser , de er hverken ren eller kontinuerlig . Et klaver kun har så mange taster , og noterne er forurenet med støj og harmoniske , der giver klaveret lyden af et klaver . At producere en ren bølge af enhver given frekvens kræver elektronik . En computer giver den mest ligetil tilgang

Du skal bruge:
Computer ( med moderne lydkort , 1990'erne-2010 ) . .
Windows XP eller højere .
MSVC + + Express 2008 Udvikling IDE .


1 .
Opret et nyt projekt i MSVC + + og tilføj en flaget fil . Programmet vil kræve grundlæggende fil skrive evne . En fremgangsmåde kunne være fstream , som er inkluderet med MSVC + + Express . Ved at inddrage fstream , vil programmet have adgang til standard rutiner til at håndtere lavt niveau diskadgang operationer giver brugeren mulighed for blot at bruge funktionen kan lide, open () og skrive ( ) for at ændre filer. Filen IO tillader oprettelsen af en lydfil på harddisken med den indkodede bølge af en ønsket frekvens . Mens metoder som DirectX ville fungere så godt, de er mere kompliceret .
2 .
Åbn et håndtag til den nye fil . Indsæt linjen " ofstream theFile ( " yourFreq. wav " ) ; "i den primære funktion i programmet . Denne linje vil skabe et nyt objekt kaldet " theFile ", og giv den filename " yourFreq. wav " . Så efter denne linje , tilføje " skriver ( m_block , størrelse ) ", hvor m_block er en pointer til en blok af hukommelse , der indeholder de data, der skal skrives og størrelse er mængden af bytes i den blok af hukommelse . Engang kaldte , vil disse funktioner opretter en ny fil i den mappe af det igangværende program , kaldet yourFreq. wav med hvad indhold blev opbevaret på m_block markøren .
3 .
Læg m_block med Indholdet af lydfilen . Først , skriv overskriften på den bølge filformat . De første 12 bytes , i standardformat , er præcis som følger , " RIFFfmt data " . Bemærk at der er et mellemrum mellem FTM og data og ingen plads i mellem RIFF og FMT . Den ASCII-værdien for byte er case-sensitive . Disse 12 bytes er beskrivelsen til operativsystemet og programmer, der læser *. wav filer, hvad der følger er en bølge fil og til at handle i overensstemmelse hermed . Den næste 24 bytes repræsenterer forskellige parametre lydfilen og skal vælges af bygherren

Dette er en liste over de parametre :


Subchunk1 ID
Subchunk1 Størrelse
audioformat
NumChannels
Samplerate

ByteRate
BlockAlign
BitsPerSample
Subchunk2ID
Subchunk2Size

data start
. . .
. . .
. . .
data ende
4 .
Læg data lydfilen i data del af m_block . Når header er blevet initialiseret til den korrekte sample rate , såsom 44,1 eller hvad der er behov for af bygherren, og antallet af kanaler er specificeret , er det tid at indlæse de faktiske data , som er der, hvor den bølge af lydfilen digitalt bosat . For at generere bølge , bruge en " for-løkke " for at bladre gennem et sæt antal prøver og beregne amplituden af den bølge på hver prøve baseret på sinus af vinklen . Matematisk , hver 360 grader en bølge fuldfører en fuld cyklus , altså at det stiger og følger og vender tilbage til sin oprindelige position . Hvis x repræsenterer vinkel , så sin (x ) repræsenterer y koordinat den bølge ( amplituden ) . Den hastighed, hvormed x cykler ( hvor hurtigt det skifter gennem 0-360 grader ) vil afgøre frekvens af de resulterende bølge . Multiplicere med nogle faktor " en " vil forstærke amplituden ( øge intensiteten , eller løst set den volumen) af lyden . Så den endelige ligning ser noget lignende : y=a * sin ( x ) . Bemærk : Hvis en sinusbølge ikke er nødvendig , kan dette trin springes over . Et firkantet bølge , for eksempel , hopper simpelthen høj-lav flere gange .
5 .
Indstil cyklus på x til at tune frekvensen . Hvis prøven sats 44,1 ( 44. 100 Hz ) , er den lydfil er optaget i mono ( en kanal , der ikke stereo ) , og den ønskede frekvens er 330Hz , så beregningen udbyttet på denne måde : Overvej sample rate , 44. 1kHz . På et sekund , er 44. 100 prøver igennem lydkortet ind i den digitale til analoge konverter og ud til højttalerne . I dette ene sekund, skal alt 330 ( ønskede frekvens ) fuld-bølge cykler opnås betyde enhver 133,6 prøver ( 44. 100 divideret med 330 ) , må man bølge blive produceret . Dette sætter x cyklus sats til omkring 2,69 grader pr sekund , eller i radianer , 0,047 radianer /prøve . Forøgelse x af dette beløb , vil hvert trin i for-løkken , generere en bølge af frekvensen 330Hz .
6 .
Kompiler og kør programmet . Ved udførelse , gennemføres, hvis korrekt, vil en lydfil med *. wav forlængelse , skal produceres. Klik på denne fil , og Windows vil indlæse og afspille lydfilen . Lydfilen vil spille den ønskede frekvens med et beløb på tid som angivet af antallet af gentagelser i for-løkken . Hvis for-løkken havde en iteration optælling af 44. 100 iteration , og prøven lå 44,1 , så lydfilen vil spille i et sekund .


Kommentarer

Vi ønsker, at dine argumenter og meninger er velkomne. Være objektiv og medfølelse. Mange mennesker læser hvad du skriver. Gør debat til en bedre oplevelse for både dem og dig selv. Mellem 20:00 og 08:00 det er lukket for kommentering og vi fjerner automatisk kommentarer med sjofle ord, defineret af vores moderatorer.

link:

  • Om os
  • Advertising
  • Fortæl redaktionen
  • Få nyhedsbreve
  • RSS-feed

Redaktør: Karin Christofferse
Nyheder redactor: Morten Nyberg

Kundeservice: Stig Ole Salomon,
Flemming Sørensen

Tel: +45 00 99 99 00
Fax: +45 00 99 99 01

© Copyright 2014 Einsten.net - All rights reserved.