Riaa коррекция: RIAA винил коррекция, что это такое и для чего

RIAA винил коррекция, что это такое и для чего

АудиоГик >> ВИНИЛ

Опубликовано: Автор: Небесный Андрей

Стандарт RIAA был утвержден еще в 1955 году. До этого времени фирмы изготовители пластинок делали записи по самым различным, зачастую собственным стандартам на характеристики. Такое положение требовало предусматривать в усилителе несколько видов коррекции грамзаписей или же использовать регуляторы тембра.

По мере распространения грампластинок, как основных носителей звука, такой подход становился все более и более некорректным. Количество фирм записи росло, а с ними росло и количество стандартов.

По этим причинам Международной электротехнической комиссией (МЭК) с 1958 г. была принята коррекция по стандарту RIAA (Recording Industries Association of America), которая вошла в стандарты большинства стран, например ГОСТ 7893-72, DIN 45 541.

Запись на пластинки осуществляется головкой-резцом. Скорость движения резца около точки равновесия (СЧ область) прямо пропорциональна значению подаваемого на него сигнала. Следовательно, при постоянном по амплитуде сигнале скорость также остается постоянной. А амплитуда резца и, соответственно, ширина канавки будут обратно пропорциональны частоте сигнала. Говоря проще, на высоких частотах ширина канавки буде уменьшаться и соотношение сигнал/шум ухудшится. На низких частотах ширина канавки увеличивается, что требует увеличения расстояния между канавками и приводит к повышению уровня искажений. Из всего этого и следует необходимость уменьшения амплитуды на НЧ и ее увеличение на ВЧ. Применение RIAA коррекции в конечном счете приводит к улучшению соотношения сигнал/шум, выравниванию и уменьшению ширины дорожек на пластинке и, соответственно, к большей продолжительности звучания одной пластинки.

Характеристика записи, утвержденная стандартом RIAA пригодна как для моно-, так и для стерео- записи.

  • Зона низких частот (НЧ), где сигнал затухает на 6 дБ на октаву
  • Зона средних частот (СЧ), где на частоте 1кГц на уровне 0 дБ находится точка перегиба
  • Зона высоких частот (ВЧ), где сигнал повышается на 6 дБ на октаву.

Такая характеристика получается с помощью трех постоянных времени τ

  • 3180мкс — соответствующей 50Гц
  • 318мкс — соответствующей 500Гц
  • 75мкс — соответствующей 2100Гц

Эти три точки определяют зигзагообразность кривой записи, а три постоянные времени используются при расчетах величин элементов корректирующих фильтров.

Кристаллические звукосниматели, которые использовались ранее имели обратную характеристику и не требовали корректировки т.к. частотная компенсация получалась автоматически. Однако такие звукосниматели не отвечают высоким звуковым требованиям и были полностью вытеснены магнитными звукоснимателями. Магнитные звукосниматели, в свою очередь имеют линейную частотную характеристику. Что вызывает необходимость использования RIAA — корректора сигнала звукоснимателя.

Существует колоссальное количество схемных решений подобных корректоров. Они реализуются и на лампах, и на транзисторах, и на операционных усилителях. Несложные схемы, доступные для повторения, отвечающие стандарту RIAA винил коррекции, подробно рассмотрены в статье Винил корректор, проверенные простые схемы.

Небесный Андрей/ автор статьи

Привет! В этом окошке авторы блогов любят мериться крутостью биографий. Мне же будет гораздо приятнее услышать критику статей и блога в комментариях. Обычный человек, который любит музыку, копание в железе, электронике и софте, особенно когда эти вещи пересекаются и составляют целое, отсюда и название — АудиоГик. Материалы этого сайта — личный опыт, который, надеюсь, пригодится и Вам. Приятно, что прочитали 🙂 

Это будет даже больше, чем спасибо:

Какая нам нужна коррекция в RIAA? — Аналоговые источники сигнала

KAA написал(а):

Из требования одинаковой мощности совершенно не вытекает, что и напряжения, и токи должны быть одинаковы. Тем более, что последнее для индуктивных и емкостных цепей в принципе невыполнимо.

Нажмите для раскрытия…

Возьмём простую схему коррекции:

1) (RC) — в горизонтальной ветви выходное сопротивление каскада R2, нагруженное на вертикальную ветвь из ёмкости C1, зашунтированной резистором R1 утечки следующего каскада.

Передаточная функция К = Ко / (Т1*s + 1), Т1 = R1 * R2 *C1/ (R1 + R2), Ко = R1.

2) (RL) — в горизонтальной ветви выходное сопротивление каскада R2 и индуктивность L1. В вертикальной ветви резистор утечки сетки следующего каскада R2.

Передаточная функция К = Ко / (Т1 * s + 1), Т1 = L1 / (R1 + R2), Ko =1 / (1 + R2/R1).

Графики ЛАХ передаточных функций абсолютно идентичны. Скорость спада -20 дБ/декаду.

Например, В.В.Солодовников «Элементы систем автоматического регулирования», часть 2, Гос. научно-техническое издательство машиностроительной литературы, М., 1959 г, стр. 90-91.

Одинаковые коэффициенты передачи допускают одинаковую нагрузку для каскада, т.е. работу при одинаковом токе и напряжении каскада.

Это равенство напряжений на входе цепей специально оговорено и отображено на графиках ЛАХ данных цепей коррекции в указанной монографии. Данные схемы позволяют получить, разумеется, равные напряжения на их выходе в зависимости от подаваемого сигнала.

===========

Да, и из чистой логики следует, что, например, на Г-образной цепи, состоящей из двух равных резисторов — в горизонтальной ветви R2 и в вертикальной ветви R1, получается коэффициент передачи К = 0,5 для всех частот в идеальном случае.

Заменим R1 вертикальной ветви на С1. Потребуем, чтобы для некоторой, наперёд известной частоты, сопротивление конденсатора было Хс = R1.
Разумеется, для данной частоты К = 0,5.

Теперь заменим R2 горизонтальной ветви на L1, потребовав, чтобы для той же частоты сопротивление L1 было равно R2. Разумеется, для этой частоты К = 0,5.

Очевидно, что каскад «видит» такие цепи как равноценные по модулю комплексного сопротивления. При одинаковых нагрузках на каскад сохраняются и равные напряжения, и равные токи на выходе каскада, т.е. на входе любой из этих цепей коррекции.

==========

Именно такое построение схем цепей коррекции и предлагаю считать условием корректного сравнения двух типов цепей коррекции, — RC и LR.

Сначала нужно услышать именно уверенное слуховое отличие в звучании этих цепей коррекции при равенстве соответственно входных и выходных напряжений на этих разных по элементной базе цепях на заданной частоте. ЛАХ той и другой цепей желательно тщательно измерить, чтобы их относительная идентичность была макисмально близкой.

==========

Коррекцию же RLx для сравнения нельзя считать равноценной по замещению коррекции простой цепи RC, поскольку появляется дополнительный, третий элемент (х).

При наличии достоверной схемы замещения коррекции RLx, а ещё лучше её точной ЛАХ, можно попробовать подобрать соответствующую ей по ЛАХ схему из некоторого набора R и С для более или менее эквивалентного замещения и элемента (х). И лишь тогда слуховое сравнение можно будет считать достаточно корректным.

Вот и все мои замечания по корректности слуховых сравнений, сделанных уважаемыми мною коллегами у Евгения Комиссарова.
Я ничуть не ставлю под сомнение их выводы.

Я ставлю под сомнение

достаточность соблюдения идентичности ЛАХ для каждой цепи, соблюдение неизменности напряжения на выходе каскада, питающего переключаемые цепи коррекции.
Мне бы предварительно, перед прослушиванием, желательно иметь уверенность, подтверждённую измерениями, что мои сомнения напрасны. Тогда и слушать можно с лёгким… ухом…

Пардон за казуистику. 🙄

Сеть выравнивания RIAA — твердотельный фонокорректор

Как уже упоминалось, топология схемы, которая будет использоваться для выравнивания RIAA, будет топологией активной фильтрации. Это означает, что предусилитель будет использовать подходящую RC-цепь в цепи обратной связи предусилителя. Непосредственная конструкция этой схемы, основанная на анализе малых сигналов схемы предусилителя, довольно громоздка, и я обнаружил, что сложность анализа растет довольно быстро.

Изучая различные топологии предусилителей, я заметил, что во многих конструкциях использовались

аналогичные RC-цепи для выполнения необходимой коррекции. Один общий подход был изложен доктором Серджио Франко в его учебнике «Проектирование операционных усилителей и аналоговых интегральных схем». Хотя в его примере используется операционный усилитель, такой подход к проектированию все же оказался приемлемым для этого конкретного приложения.

Ключевым моментом здесь является то, что схема предусилителя, как и операционный усилитель, использует дифференциальный входной каскад, который сравнивает входной сигнал (от проигрывателя) с частотно-зависимой копией выходного сигнала. Результатом частотно-зависимой обратной связи, используемой по определению, является фильтрация. Путем соответствующего выбора реактивных компонентов в цепи обратной связи достигается желаемый отклик RIAA. Схема, из которой можно получить значения этих компонентов, показана ниже:

Схема для определения сетевых компонентов RIAA


Можно показать, что передаточная функция для схемы:

Где:


значения компонентов остаются. Чтобы помочь в этом процессе, была написана функция Matlab, которая принимала выбранное пользователем значение для C 2 , а затем вычисляла оставшиеся емкости и сопротивления и выводила их значения. Чтобы начать сужать фактические значения, которые будут использоваться в схеме, я разработал два критерия. Во-первых, детали легко достать, желательно со стандартными значениями «десятилетия». Второй критерий заключается в том, что значения сопротивления должны поддерживаться на низком уровне, чтобы свести к минимуму их шумовой вклад в сигнал.

После нескольких итераций я пришел к следующим значениям:


Стоит отметить пару вещей. Предполагается, что C 1 оказывает незначительное влияние на цепь при условии, что его значение достаточно велико. В результате он опущен в приведенных выше выводах. Условием для этого является то, что R 1  должно быть намного больше, чем C 1 на низкой частоте (≤ 20 Гц). Именно C 1 полностью определяет отклик в этой точке, поэтому, изменяя его значение, можно обеспечить низкочастотный спад или фильтрацию гула. Поскольку это считалось желательным эффектом, было выбрано значение 470 мкФ, так как оно обеспечивало затухание до 20 дБ по мере приближения отклика к постоянному току, но существенно не меняло отклик в «слышимых» частотах от 20 до 20 Гц. диапазон кГц.

Остальные значения меня очень устроили. Благодаря использованию последовательных и параллельных соединений RC-цепочка может быть построена с использованием стандартных значений компонентов, а общее сопротивление остается в пределах примерного диапазона, на который я надеялся. Принципиальную схему выбранных значений можно увидеть ниже:

Сеть RC для RIAA Eq.


Тестирование частотной характеристики показало, что выбранные значения вполне подходят для выполнения уравнения RIAA. Подробнее об этом в разделах, посвященных окончательным испытаниям и измерениям.

Gale Apps — Технические трудности

Приложение, к которому вы пытаетесь получить доступ, в настоящее время недоступно. Приносим свои извинения за доставленные неудобства. Повторите попытку через несколько секунд.

Если проблемы с доступом сохраняются, обратитесь за помощью в наш отдел технической поддержки по телефону 1-800-877-4253. Еще раз спасибо, что выбрали Gale, обучающую компанию Cengage.

org.springframework.remoting.RemoteAccessException: невозможно получить доступ к удаленной службе [authorizationService@theBLISAuthorizationService]; вложенным исключением является com.zeroc.Ice.UnknownException unknown = «java.lang.

IndexOutOfBoundsException: индекс 0 выходит за границы для длины 0 в java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) в java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) в java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) в java.base/java.util.Objects.checkIndex(Objects.java:372) в java.base/java.util.ArrayList.get(ArrayList.java:458) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.populateSessionProperties(LazyUserSessionDataLoaderStoredProcedure.java:60) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.reQuery(LazyUserSessionDataLoaderStoredProcedure.java:53) в com.gale.blis.data.model.session.UserGroupEntitlementsManager.reinitializeUserGroupEntitlements(UserGroupEntitlementsManager.java:30) в com.gale.
blis.data.model.session.UserGroupSessionManager.getUserGroupEntitlements(UserGroupSessionManager.java:17) в com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getProductSubscriptionCriteria(CrossSearchProductContentModuleFetcher.java:244) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getSubscribedCrossSearchProductsForUser(CrossSearchProductContentModuleFetcher.java:71) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getAvailableContentModulesForProduct(CrossSearchProductContentModuleFetcher.java:52) на com.gale.blis.api.authorize.strategy.productentry.strategy.AbstractProductEntryAuthorizer.getContentModules(AbstractProductEntryAuthorizer.java:130) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.isAuthorized(CrossSearchProductEntryAuthorizer.
java:82) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.authorizeProductEntry(CrossSearchProductEntryAuthorizer.java:44) на com.gale.blis.api.authorize.strategy.ProductEntryAuthorizer.authorize(ProductEntryAuthorizer.java:31) в com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody0(BLISAuthorizationServiceImpl.java:57) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody1$advice(BLISAuthorizationServiceImpl.java:61) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize(BLISAuthorizationServiceImpl.java:1) в com.gale.blis.auth.AuthorizationService._iceD_authorize(AuthorizationService.java:97) в com.gale.blis.auth.AuthorizationService._iceDispatch(AuthorizationService.java:406) в com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221) в com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI.
java:2706) на com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292) в com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1203) в com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412) в com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7) в com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:781) в java.base/java.lang.Thread.run(Thread.java:834) » org.springframework.remoting.ice.IceClientInterceptor.convertIceAccessException(IceClientInterceptor.java:348) org.springframework.remoting.ice.IceClientInterceptor.invoke(IceClientInterceptor.java:310) org.springframework.remoting.ice.MonitoringIceProxyFactoryBean.
invoke(MonitoringIceProxyFactoryBean.java:71) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) com.sun.proxy.$Proxy151.authorize(Неизвестный источник) com.gale.auth.service.BlisService.getAuthorizationResponse(BlisService.java:61) com.gale.apps.service.impl.MetadataResolverService.resolveMetadata(MetadataResolverService.java:65) com.gale.apps.
controllers.DiscoveryController.resolveDocument(DiscoveryController.java:57) com.gale.apps.controllers.DocumentController.redirectToDocument(DocumentController.java:22) jdk.internal.reflect.GeneratedMethodAccessor356.invoke (неизвестный источник) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) org.
springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:895) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:808) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) org. springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:626) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax. servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) com.gale.common.http.filter.SecurityHeaderFilter.doFilterInternal(SecurityHeaderFilter.java:29) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.owasp.validation.GaleParameterValidationFilter.doFilterInternal(GaleParameterValidationFilter.java:97) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal (WebMvcMetricsFilter.java:96) org. springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org. apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) org.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *